使用XPath函数刮取所有匹配的内容

时间:2017-04-01 19:10:23

标签: java selenium xpath selenium-webdriver

如何确保我的selenium代码擦除了我的XPath的所有匹配内容?
请帮助我解决你的想法。

例如,这些是我的HTML标签:

<tr class="1" role="r1">
    <td class="c1">
        <a href="www.google.com">
        </a>
    </td>
</tr>
<tr class="2" role="r2">
    <td class="c2">
        <a href="www.youtube.com">
        </a>
    </td>
</tr>
<tr class="3" role="c3">
    <td class="c3">
        <a href="www.facebook.com">
        </a>
    </td>
</tr>

我希望我的selenium代码从href标签中获取所有链接 所以,下面是我的XPath:

String links = driver.findElement(By.xpath("//tr[@role='cad']//td[@class='c1']//a")).getAttribute("href"); 
System.out.println(links);

但它只获取第一个href输出,即www.google.com

所需的输出是:

www.google.com
www.youtube.com
www.facebook.com

我怎样才能做到这一点?
任何数组实现都是更好的选择吗?

2 个答案:

答案 0 :(得分:1)

尝试以下代码:

foreach ($getPostlikes as $key=> $item) {//suppose array is $getPostlikes 
  echo $item['from']['name'];
}

答案 1 :(得分:1)

尝试以下代码。

List<WebElement> links = driver.findElements(By.xpath("//tr/td/a"));

    for(int i=0;i<links.size();i++){
        System.out.println(links.get(i).getAttribute("href"));
    }