复选框ID在网页中不断变化,导致selenium脚本失败

时间:2016-02-16 13:34:38

标签: 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="checkbox" value="on" tabindex="0" checked=""/>
<label for="gwt-uid-193"/>
</span>
我使用的xpath是:

//*[@id='gwt-uid-193']

2 个答案:

答案 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