Selenium WebDriver Java / JUnit - 获取表元素

时间:2015-10-12 17:19:02

标签: java selenium selenium-webdriver junit

我有下表:

<table>
    <tbody>
        <tr>
            <td>
                <a href="/ResetPassword/1/"></a>
            </td>
            <td>
                User1
            </td>
        </tr>
        <tr>
            <td>
                <a href="/ResetPassword/2/"></a>
            </td>
            <td>
                User2
            </td>
        </tr>
    </tbody>
</table>

我想找到tr的a - 标签,其中数据User2位于同一行。我知道我可以找到一个a - 标签,其中包含findElement(By.partialLinkText("/ResetPassword/"));等部分链接(数字2可以更改,因此我无法将其用作分隔符)。但是我需要用户分开它。有没有类似tr.td.text("User2") > findElement(By.partialLinkText("/ResetPassword/"));的解决方案?

3 个答案:

答案 0 :(得分:1)

这个XPath应该为你做的伎俩。 .//tr[td[normalize-space(text())='User2']]//a只需不断更改&#34; User2&#34;具有所需用户价值的部分。

答案 1 :(得分:0)

你可以尝试这样的事情(虽然不确定) -

List<WebElement> list=table.findElements(By.tagName("tr"));
List<WebElement> tdvalues=null;
for(WebElement web:list){
   tdvalues=web.findElements(By.tagName("td"));
      if(tdvalues.contains("User2")){
          System.out.println(tdvalues.get(0).getText());//0th position contains the      link
      }
tdvalues.clear();
} 

答案 2 :(得分:0)

您好我想知道您是否可以在xpath末尾使用.getValue()语句与/@a来查找属性&#34; a&#34;。 要做的主要事情是找到一个防弹xpath来找到User2行,一旦你找到了&#34; a&#34;应该很容易。

我希望这会有所帮助