我似乎无法使用点击复选框。
控制台中没有错误,它显示单击但未选中复选框
我尝试过同时使用click
和check
,但似乎都没有勾选复选框。
使用IDE记录器建议的数据库ID(102)不是一个选项,因为每次运行时ID都会发生变化。
我正在尝试:css=fieldset.choices ol li label input
为我的定位器。
我也尝试过://fieldset[@class='choices']//ol//li//label//input
然后控制台再次点击,但实际上并没有在浏览器中检查该复选框。
我还尝试了//input[@type='checkbox']
选择器,因为它是屏幕上的第一个checlbox,但没有运气,但没有明确的错误。
HTML是:
<fieldset class="choices">
<legend class="label">
<label>
Grades
</label>
</legend>
<input id="school_grades_none" type="hidden" value="" name="school[grade_ids][]">
</input>
<ol class="choices-group">
<li class="choice">
<label for="school_grade_ids_102">
<input id="school_grade_ids_102" type="checkbox" value="102" style="border: none" name="school[grade_ids][]">
</input>
PK3
</label>
</li>
<li class="choice">
...
</li>
<li class="choice"></li>
...
</li>
<li class="choice"></li>
...
</li>
...
答案 0 :(得分:1)
当您使用id=school_grade_ids_102
作为定位器而不是xpath或css时,该怎么做。
<强>更新强>
你如何使用contains
//input[contains(@id, 'school_grade_ids_')] # add [1] or [2], etc. at the end
答案 1 :(得分:0)
setCheckboxValue(By.id("checkboxId"), true /* or false*/);
public void setCheckboxValue(By by, boolean checked) {
WebElement e = getDriver().findElement(by);
if(!e.isSelected() && checked) {
e.click();
}
}