我正在尝试自动点击某个复选框。但是,每次运行后,复选框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="checkbox" value="on" tabindex="0" checked=""/>
<label for="gwt-uid-193"/>
</span>
我使用的xpath是:
//*[@id='gwt-uid-193']
答案 0 :(得分:0)
如果修复了父<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']"));
答案 1 :(得分:0)
我自己找到了解决方案。我们可以根据复选框的位置使用xpath
,即:
// input[@type='checkbox'])[position()=3]
这也可用于单选按钮。将checkbox
替换为radio
。