[英]Try get multiple links from webpage in Selenium using Java and PhantomJS
我在使用Java,Selenium和PhantomJS时遇到问题。 我想从网页上获取多个按钮链接(使用CSS选择器),但是它不起作用。
link = driver.findElement(By.cssSelector("div.a:nth-child("+ elementCounter +") > div:nth-child(3) > a:nth-child(1)")).getAttribute("href");
elementCounter++;
System.out.println("counters: "+elementCounter + link);
我使用的elementCounter确实计数+1,但css选择器中的计数器不起作用(它不断获得相同的按钮链接)。 该代码确实处于while循环中,但仍然无法正常工作。
在html结构下面:
<div class="a">
<a href="test.php?id=393">hello world</a>
</div>
<div class="b">
<a href="test.php?id=394">hello world</a>
</div>
<div class="c">
<a href="test.php?id=395">hello world</a>
</div>
如果可能,我将切换到XPath。 如果对孩子与父母的关系有其他要求,则很容易添加。
这将获取页面中<div>
元素下的所有链接:
List<WebElement> anchorElements = driver.findElements(By.xpath("//div/a"));
System.out.println(anchorElements.size() + " links found");
for (WebElement a : anchorElements) {
System.out.println("Link: " + a.getText() + " links to " + a.getAttribute("href"));
}
或在Java 8中
List<WebElement> anchorElements = driver.findElements(By.xpath("//div/a"));
System.out.println(anchorElements.size() + " links found");
anchorElements.stream().forEach(a -> System.out.println("Link: " + a.getText() + " links to " + a.getAttribute("href"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.