我遇到了识别行并在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”识别对象,因为它具有用户名而无需解析任何信息或进行部分文本搜索。我感谢任何人的帮助。
答案 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 + "']");