0

我似乎无法使用单击复选框。
控制台中没有错误,它显示单击但未选中复选框。
我已经尝试使用两者clickcheck但似乎都没有选中复选框。使用 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>
    ...
4

2 回答 2

1

当您id=school_grade_ids_102用作定位器而不是 xpath 或 css 时怎么样。

更新

你这样用怎么contains

//input[contains(@id, 'school_grade_ids_')] # add [1] or [2], etc. at the end
于 2013-05-20T15:04:08.113 回答
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();
        }
    }
于 2013-05-20T14:27:43.747 回答