【问题标题】:Selenium WebDriver Java / JUnit - Getting table elementSelenium WebDriver Java / JUnit - 获取表格元素
【发布时间】:2015-10-12 17:19:01
【问题描述】:

我有下表:

<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-tag,其中数据User2在同一行。我知道我可以找到带有部分链接的a-tag,例如findElement(By.partialLinkText("/ResetPassword/"));(数字2 可以更改,因此我不能将其用作分隔符)。但我需要按用户分开。有没有像tr.td.text("User2") &gt; findElement(By.partialLinkText("/ResetPassword/"));这样的解决方案?

【问题讨论】:

    标签: java selenium selenium-webdriver junit


    【解决方案1】:

    这个 XPath 应该可以为您解决问题。 .//tr[td[normalize-space(text())='User2']]//a 只需将“User2”部分更改为所需的用户值即可。

    【讨论】:

      【解决方案2】:

      您好,我想知道您是否可以在 xpath 末尾使用带有 /@a.getValue() 语句来定位属性“a”。 要做的主要事情是找到一个防弹 xpath 来定位 User2 行,一旦找到“a”的值应该很容易。

      希望对你有帮助

      【讨论】:

        【解决方案3】:

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

        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();
        } 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-04
          • 1970-01-01
          • 1970-01-01
          • 2023-03-07
          • 2019-02-04
          • 1970-01-01
          • 2021-09-29
          相关资源
          最近更新 更多