如何从表中所有类具有相同名称的按钮单击

时间:2014-09-10 14:10:01

标签: java selenium button html-table click

<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

其他表格更容易,因为类名不同。但是同样的方法在这里不起作用。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

您可以找到元素By.xpath

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

xpath将搜索trtabletd的{​​{1}}类t_r和文字dsdfsf,然后搜索最后td 1}}在行内。