Как получить полный исходный код ссылки с помощью selenium
-
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()
Дрянной, но это работает.
Примечание:это не сработает, если ссылка будет перенаправлена.