网页中的复选框id不断更改,导致selenium脚本失败
我正在尝试自动单击某个复选框。但是,每次运行后,复选框id都会更改,脚本无法找到元素。是否有另一种编写xpath的方法网页中的复选框id不断更改,导致selenium脚本失败,selenium,xpath,checkbox,Selenium,Xpath,Checkbox,我正在尝试自动单击某个复选框。但是,每次运行后,复选框id都会更改,脚本无法找到元素。是否有另一种编写xpath的方法 <span id="field_key$0993573c-83b4-30d4-9139-44e44b496d0f$1food_contamination-checkbox" class="v-checkbox v-widget" ca-help-field-id="undefined"> <input id="gwt-uid-193" type="checkb
<span id="field_key$0993573c-83b4-30d4-9139-44e44b496d0f$1food_contamination-checkbox" class="v-checkbox v-widget" ca-help-field-id="undefined">
<input id="gwt-uid-193" type="checkbox" value="on" tabindex="0" checked=""/>
<label for="gwt-uid-193"/>
</span>
如果父级
id是固定的,您可以使用它并向下移动一级到复选框
driver.findElement(By.cssSelector("#field_key$0993573c-83b4-30d4-9139-44e44b496d0f$1food_contamination-checkbox > input"));
或者使用父类
driver.findElement(By.cssSelector(".checkbox > input"));
如果只有一个复选框,则可以使用type属性
driver.findElement(By.cssSelector("[type='checkbox']"));
我自己找到了解决办法。我们可以根据复选框的位置使用
xpath
,即:
这也可用于单选按钮。将复选框
替换为收音机
driver.findElement(By.cssSelector("[type='checkbox']"));
// input[@type='checkbox'])[position()=3]