我正在使用 selenium RC 并希望获得所有属性。就像是:
link = sel.get_full_link('//a[@id="specific-link"]')
结果将是:
print link
将会:
<a id="specific-link" name="links-name" href="url"> text </a>
这可能吗?
谢谢
我正在使用 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());
}
String href = selenium.getAttribute("xpath=//a[@id="specific-link"]/@href")
我一直在尝试这样做,并提出了以下建议:-
var selenium = 硒;
string linkText = selenium.GetText("//a[@href='/admin/design-management']");
Assert.AreEqual("设计管理", linkText);
使用以下代码获取页面上的所有链接:
$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++;
}
}
如果链接不是动态的,那么试试这个相当俗气的hacky解决方案(这是在Python中):
selenium.click("//a[text()='Link Text']")<br>
selenium.wait_for_page_to_load(30000)<br>
myurl = selenium.get_location()
俗气但有效。
注意:如果链接重定向,这将不起作用。