【问题标题】:How to click a button from a table where all classes have the same name如何从所有类都具有相同名称的表中单击按钮
【发布时间】:2014-11-04 05:36:12
【问题描述】:
<tbody>
  <tr class="b">
    <td class="t_l">betmatrix</td>
    <td class="t_l">
    <td class="t_r">dsdfsf</td>
    <td class="t_r">NONE</td>
    <td class="t_r">ALL</td>
    <td class="t_r">NONE</td>
    <td class="t_r">ALL</td>
    <td class="t_r">ALL</td>
    <td class="t_r">NONE</td>
    <td class="t_r">ALL</td>
    <td class="t_r">Not required</td>
    <td class="t_r">1.11</td>
    <td class="t_r">All User</td>
    <td class="t_r">0.00</td>
    <td class="t_r">2014-09-05</td>
    <td class="t_r">2014-09-15</td>
    <td class="t_r">2014-09-05</td>
    <td class="t_r">1-admin</td>
    <td class="t_r">
    <td class="t_r">0.00</td>
    <td class="t_r">0.00</td>
    <td class="t_r">
    <td class="t_r">
      <a onclick="showBonusModificationLogs(53599)" href="#">History</a>
    </td>
  </tr>
  <tr class="a">
  <tr class="b">
  <tr class="a">
</tbody>

这是我拥有的表结构,我无法只搜索表中的特定项目。

如何在一行中找到一个元素,如果找到,然后点击该行末尾的按钮?

在这个例子中,我需要搜索这个词:dsdfsf

其他表更容易,因为类名不同。但是同样的方法在这里行不通。

【问题讨论】:

    标签: java selenium button html-table click


    【解决方案1】:

    正如@alecxe 指出的,您可以使用XPath。可能有数百种不同的方法可以做到这一点。但为了满足您的要求,我会使用://tr[td[text()='dsdfsf']]/td/a。这表示:任何具有包含文本“dsdfsf”的列的行,找到带有锚标记的列。

    【讨论】:

      【解决方案2】:

      你可以找到元素By.xpath:

      WebElement element = driver.findElement(By.xpath('//table//tr[td[@class="t_r"] and text() = "dsdfsf"]/td[last()]'));
      element.click();
      

      xpath 将在 table 内的每个 tr 中搜索 td 类为 t_r 和文本 dsdfsf,然后将在行内找到最后一个 td

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-22
        • 1970-01-01
        • 2018-02-28
        • 2023-03-10
        • 1970-01-01
        • 2015-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多