繁体   English   中英

尝试使用Java和PhantomJS从Selenium中的网页获取多个链接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM