【问题标题】:How to click a checkbox by text of another table value如何通过另一个表值的文本单击复选框
【发布时间】:2015-08-14 09:14:54
【问题描述】:

我有一个包含以下 html 的表格的页面

<tbody>
    <tr>
       <td>
          <div>
              <input /> <----what I want to click
          </div>
       </td>
       <td></td>
       <td></td>
       <td>
          <div>
              <a>
                 <span>text here</span> <-----how i find correct table row
              </a>
          </div>
       </td>
    </tr>
</tbody>

问题是“此处的文字”是我找到要单击的正确复选框的唯一信息。

我试过的是

this.getDriver().findElement(By.xpath("//span[text()='" + texthere + "']/parent::tr/following-sibling::td/div/input")).click();

它怎么找不到元素。

任何帮助将不胜感激。

【问题讨论】:

    标签: java html selenium xpath junit


    【解决方案1】:

    试试这个 * 首先找到你想要的子节点 * 然后找到所需元素类型的第一个祖先(在您的情况下为“tr”) * 然后得到这个tr下面的第一个输入元素

    String xpathExpression = "//tbody//span[contains(., 'text here')]/ancestor::tr[1]//input";
    driver.findElement(By.xpath(xpathExpression)).click();
    

    【讨论】:

      【解决方案2】:

      试试下面的 xpath:-

      this.getDriver().findElement(By.xpath("//tbody//td[text()='"+texthere+"']/preceding-sibling::td//input")).click();
      

      在上面的 xpath 中,我们找到了包含 text heretd 标签,参考这个标签,我们找到了它前面的兄弟 td这样它包含输入标签

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-10
        • 2019-06-08
        • 2015-04-20
        • 1970-01-01
        • 2020-01-19
        • 2013-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多