Как получить полный исходный код ссылки с помощью selenium

StackOverflow https://stackoverflow.com/questions/1418683

  •  07-07-2019
  •  | 
  •  

Вопрос

Я использую selenium RC и хочу получить все атрибуты и все такое.Что - то вроде:

link = sel.get_full_link('//a[@id="specific-link"]')

и результатом было бы:

print link

было бы:

<a id="specific-link" name="links-name" href="url"> text </a>

Возможно ли это?

Спасибо

Это было полезно?

Решение

Вот более причудливое решение:

sel.get_eval("window.document.getElementByID('ID').innerHTML")

(не будьте придирчивы ко мне по поводу javascript ..)

Другие советы

Я думаю, что лучшим способом сделать это было бы использовать команду getHtmlSource для получения всего исходного кода HTML, а затем использовать либо регулярное выражение, либо анализатор HTML для извлечения интересующего элемента.

Следующий пример Java выведет все ссылки на System.out:

selenium.open("http://www.example.com/");
String htmlSource = selenium.getHtmlSource();
Pattern linkElementPattern = Pattern.compile("<a\\b[^>]*href=\"[^>]*>(.*?)</a>");
Matcher linkElementMatcher = linkElementPattern.matcher(htmlSource);
while (linkElementMatcher.find()) {
    System.out.println(linkElementMatcher.group());
}

Получить атрибут

Строка href = selenium.getAttribute("xpath=//a[@id="specific-link"]/@href")

Я пытался сделать именно это и пришел к следующему:-

var селен = Селен;

строка linkText = selenium.GetText("//a[@href='/admin/design-management']");

Утверждать.AreEqual("Управление дизайном", текст ссылки);

используйте приведенный ниже код, чтобы получить все ссылки на странице:

$str3= "window.document.getElementsByTagName('a')";
$k = $this->selenium->getEval($str3);
$url = explode(",",$k);
$array_size = count($url);
$name=array();
$l=0;
for($i=0;$i<$array_size;$i++)
{
    if(!strstr($url[$i], 'javascript'))
    {
        $name[$l]=$url[$i];

        echo "\n".$name[$l];
        $l++;
    }
}

Если ссылка не является динамической, то попробуйте это довольно дрянное, хакерское решение (это на Python).:

selenium.click("//a[text()='Link Text']")<br>
selenium.wait_for_page_to_load(30000)<br>
myurl = selenium.get_location()

Дрянной, но это работает.

Примечание:это не сработает, если ссылка будет перенаправлена.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top