我在HTML span标记中有一个复选框列表。在span标记中,有一个输入标记和一个标记标记。我想点击输入标签中的复选框,其中包含标签文字,例如“允许性别不匹配” 在我的XPATH中,我可以进入标签标签,但我不知道如何上升1,所以我可以点击输入标签。
我想帮助获取XPATH或CSS定位器。
我不能使用id =“gwt-uid-1204”,因为这是一个动态值。当您访问该页面时,它会发生变化
获取标签文本的我的XPATH是:
//div[@id="match_configuration_add_possible_tab_match_rules_fp_flags"]/span/label[contains(text(), "Allow gender mismatch")]
HTML代码段为:
<div id="match_configuration_add_possible_tab_match_rules_fp_flags">
<div class="gwt-Label matchruleheader">Gender and title flags</div>
<span class="gwt-CheckBox" style="display: block;">
<input id="gwt-uid-1204" type="checkbox" value="on" tabindex="0"/>
<label for="gwt-uid-1204">Gender must be present in both names</label>
</span>
<span class="gwt-CheckBox" style="display: block;">
<input id="gwt-uid-1205" type="checkbox" value="on" tabindex="0"/>
<label for="gwt-uid-1205">Gender must be consistent in both names</label>
</span>
<span class="gwt-CheckBox" style="display: block;">
<input id="gwt-uid-1206" type="checkbox" value="on" tabindex="0"/>
<label for="gwt-uid-1206">Allow gender mismatch</label>
</span>
<span class="gwt-CheckBox" style="display: block;">
<span class="gwt-CheckBox" style="display: block;">
<span class="gwt-CheckBox" style="display: block;">
-- More checkboxes
</div>
谢谢Riaz
答案 0 :(得分:2)
你至少有两种可能性:
1)使用xpaths&#34; ..&#34;去一个元素
//div[@id="match_configuration_add_possible_tab_match_rules_fp_flags"]/span/label[contains(text(), "Allow gender mismatch")]/../input
2)使用xpaths&#34; previous-sibling&#34;:
//div[@id="match_configuration_add_possible_tab_match_rules_fp_flags"]/span/label[contains(text(), "Allow gender mismatch")]/preceding-sibling::input
就个人而言,我更喜欢第一种方法,因为即使兄弟元素的顺序发生变化,它仍然有效。使用第二种方法,您总是需要检查兄弟姐妹是否在&#34;之前&#34;或&#34;以下&#34; (然后你必须使用following-sibling
)
答案 1 :(得分:1)
您需要将/preceding-sibling::input
添加到当前的XPath中。所以最终的解决方案是:
//div[@id="match_configuration_add_possible_tab_match_rules_fp_flags"]/span/label[contains(text(), "Allow gender mismatch")]/preceding-sibling::input
这会选择所需的输入元素,因此您可以根据需要单击它。