如何根据文本选择表中的特定元素

时间:2012-11-12 17:20:46

标签: selenium phpunit selenium-ide

<table>
  <tbody>
    <tr>
      <th style="width:200px;">Features</th>
      <th style="width:300px;">Settings for this entry round</th>
      <th style="width:300px;">
    </tr>
    <tr>
      <td style="background-color: rgb(234, 234, 234);"> is_team_round </td>
      <td style="text-align:center;">
      <div>
        <select id="account_3" onchange="changeAccount(3);" style="background-color: rgb(255, 255, 255);">
      <div> </div>
      </div>
      </td>
      <td style="text-align:center;"> Yes </td>
    </tr>
    <tr>
      <td> is_file_uploads </td>
      <td style="text-align:center;">
      <div>
        <select id="account_4" onchange="changeAccount(4);">
      <div> </div>
      </div>
      </td>
      <td style="text-align:center;"> Yes </td>
    </tr>
  </tbody>
</table>

如何根据文本is_team_round?

选择ID帐户3

我尝试//td[contains(text(), 'is_team_round')],然后选择is_team_round。

然后我尝试//td[contains(text(), 'is_team_round')]//select[@id='account_3'],但它不起作用

3 个答案:

答案 0 :(得分:2)

尝试使用xpath:

//tr[./td[contains(text(), 'is_team_round')]]//select

这就是找到包含文本'is_team_round'的单元格(td)的行(tr)。然后找到该行内的选择列表。

注意:您的原始解决方案无效,因为它试图在包含文本的单元格内找到一个选择列表。如HTML中所示,选择列表不在同一单元格内。因此,需要使用共同的祖先(即行)。

答案 1 :(得分:0)

我使用2个嵌套的jquery的.each()函数迭代单元格,然后使用jquery的.val()或.html()函数测试值来获取和比较值。检查那些jquery.com上的函数使用和语法。 希望它有所帮助

答案 2 :(得分:-1)

  $("#table").find("tbody td").eq('is_team_body');

id尝试这样的事情