选择DataGrid中的项目

时间:2014-01-09 19:59:56

标签: selenium selenium-webdriver webdriver

我遇到了识别行并在selenium中选择项目的问题。有没有人有任何建议?

背景: 该表是用户注册表,系统管理员可以在其中选择注册用户并为用户分配权限。

HTML代码:

<table role="grid">
  <thead id="usersForm:usersTable_head">
  <tfoot/>
  <tbody id="usersForm:usersTable_data" class="ui-datatable-data ui-widget-content">
    <tr class="ui-widget-content ui-datatable-even ui-state-hover" aria-selected="false" role="row" data-rk="user1" data-ri="0">
      <td role="gridcell">1, User (user1)</td>
      <td role="gridcell">
        <span id="usersForm:usersTable:0:roles">6</span>
      </td>
    </tr>
    <tr class="ui-widget-content ui-datatable-odd" aria-selected="false" role="row" data-rk="user2" data-ri="1">
      <td role="gridcell">2, User (user2)</td>
      <td role="gridcell">
        <span id="usersForm:usersTable:1:roles">22</span>
      </td>
    </tr>

理想情况下,我可以通过<tr>属性“data-rk”识别对象,因为它具有用户名而无需解析任何信息或进行部分文本搜索。我感谢任何人的帮助。

1 个答案:

答案 0 :(得分:3)

的XPath:

string username = "user2";
By.XPath(".//tbody[@id='usersForm:usersTable_data']/tr[@data-rk='" + username + "']");

Css选择器(请注意tbody ID中的冒号)

string username = "user2";
By.CssSelector("#usersForm\\\:usersTable_data > tr[data-rk='" + username + "']");