使用Selenium检查所有复选框

时间:2016-12-27 13:19:04

标签: python python-3.x selenium checkbox

我正在尝试检查页面上的所有复选框,类似于https://sqa.stackexchange.com/questions/3292/how-to-select-or-check-multiple-checkboxes-in-selenium

我尝试用

做到这一点
checkboxes = driver.find_elements_by_class_name('gwt-CheckBox')
for checkbox in checkboxes:
    if not checkbox.is_selected():
        checkbox.click()

但是,所有复选框都为is_selected()赋予False,因此已经选中的复选框将关闭,未选中的复选框将打开。下面我有一个已检查的CheckBox类(库名称)和一个未选中的Checkbox类(成对标称长度)的示例。

如何检查这些是否已被选中?

  <div style="position: relative; display: inline-block; vertical-align: top; float: left;">
   <span class="gwt-CheckBox">
    <input id="gwt-uid-27" tabindex="0" type="checkbox" value="on"/>
    <label for="gwt-uid-27">
     Library name
    </label>
   </span>
  </div>
 </div>
 <div class="holderFp" style="width: 100%; position: relative; overflow: hidden; display: block;">
  <div style="position: relative; display: inline-block; vertical-align: top; float: left; width: 25%;">
   <span class="gwt-CheckBox">
    <input id="gwt-uid-28" tabindex="0" type="checkbox" value="on"/>
    <label for="gwt-uid-28">
     Paired nominal length
    </label>
   </span>
  </div>

1 个答案:

答案 0 :(得分:2)

似乎复选框元素实际上在<input>子标记中。尝试使用它

checkboxes = driver.find_elements_by_css_selector('.gwt-CheckBox > input')