我在列中有一个复选框列表。我想从第2行选择复选框。我尝试了以下XPATH,但它选择了所有的checbox。
//table[@id="match_configuration_add_possible_tab_match_rules_tb_match_rules"]//input[@type = "checkbox"]
HTML是:
<table id="match_configuration_add_possible_tab_match_rules_tb_match_rules" class="GOFU2OVJE border" cellspacing="0" __gwtcellbasedwidgetimpldispatchingfocus="true" __gwtcellbasedwidgetimpldispatchingblur="true">
<thead aria-hidden="false">
<tr __gwt_header_row="0">
<th class="GOFU2OVID GOFU2OVGD" __gwt_header="header-gwt-uid-311" __gwt_column="column-gwt-uid-310" colspan="1">
<span style="">
<input type="checkbox"/>
</span>
</th>
<th class="GOFU2OVID GOFU2OVAE" __gwt_header="header-gwt-uid-313" __gwt_column="column-gwt-uid-312" colspan="1">Name</th>
</tr>
</thead>
<colgroup>
<tbody style="">
<tr class="GOFU2OVCD GOFU2OVMD" __gwt_subrow="0" __gwt_row="0">
<td class="GOFU2OVBD GOFU2OVDD GOFU2OVED GOFU2OVND">
<div __gwt_cell="cell-gwt-uid-299" style="outline-style:none;">
<input type="checkbox" tabindex="-1"/>
</div>
</td>
<td class="GOFU2OVBD GOFU2OVDD GOFU2OVOD GOFU2OVLD GOFU2OVND">
<div __gwt_cell="cell-gwt-uid-300" style="outline-style:none;">
<input id="" class="" type="text" style="color: blue;" value=""/>
</div>
</td>
</tr>
<tr class="GOFU2OVCE GOFU2OVJD" __gwt_subrow="0" __gwt_row="1">
<td class="GOFU2OVBD GOFU2OVDE GOFU2OVED GOFU2OVKD">
<div __gwt_cell="cell-gwt-uid-299" style="outline-style:none;">
<input type="checkbox" tabindex="-1"/>
</div>
</td>
<td class="GOFU2OVBD GOFU2OVDE GOFU2OVOD GOFU2OVKD">
</tr>
</tbody>
<tbody style="display: none;">
<tfoot style="display: none;" aria-hidden="true"/>
</table>
我想选中具有cell-gwt-uid-299的复选框 我不能在XPATH中使用UID-299,因为这个值是动态的。访问该页面时,该号码会发生变化。
我还尝试使用祖先的以下XPATH:
//table[@id="match_configuration_add_possible_tab_match_rules_tb_match_rules"]/ancestor::tr[1]//input[@type = "checkbox"]
我试过使用前面的。在“开发人员工具”窗口中,正在突出显示一个复选框,但它来自另一个表:
//table[@id="match_configuration_add_possible_tab_match_rules_tb_match_rules"]/preceding::tr[1]//input[@type = "checkbox"]
使用前面的奇怪的是尝试从不同的表中选择一个复选框。以下是使用前面的开发工具中突出显示的HTML:
<table id="data_configuration_feeds_ct_fields_body" cellspacing="0" style="table-layout: fixed; width: 100%;">
<colgroup>
<tbody>
<tr class="GOFU2OVFG" __gwt_subrow="0" __gwt_row="0">
<tr class="GOFU2OVEH" __gwt_subrow="0" __gwt_row="1">
<tr class="GOFU2OVFG" __gwt_subrow="0" __gwt_row="2">
<td class="GOFU2OVEG GOFU2OVGG GOFU2OVHG">
<div __gwt_cell="cell-gwt-uid-111" style="outline-style:none;">
<input type="checkbox" tabindex="-1"/>
</div>
</td>
我可以使用什么XPATH?
答案 0 :(得分:2)
以下是如何从第二行获取复选框:
//table[@id='match_configuration_add_possible_tab_match_rules_tb_match_rules']//tbody/tr[2]//input[@type='checkbox']
关于&#34;前面的&#34;和&#34;祖先&#34;:
这是因为您搜索的复选框是 AFTER (在)table-element中。但使用&#34;前面&#34;就像你一样,你正在搜索一个复选框 BEFORE 你的表格元素(在HTML代码中)。 类似于&#34;祖先&#34;。你正在寻找一个元素&#34;上面&#34;你的表元素是tr。除非您的表是另一个表的一部分,否则将导致没有拟合元素。相反,你可以使用&#34;后代&#34;,它将搜索&#34; WITHIN&#34;你的元素。