无法使用Selenium和Python选择多个复选框

时间:2017-01-12 17:00:29

标签: python python-2.7 selenium selenium-webdriver

我的目标:

当我访问特定页面时,我需要点击10个复选框

我的代码:

def select_checkbox(self):

    checkboxes = self.find_elements(EventsLocators.CHECKBOX_SELECTOR)

    for each_checkbox in checkboxes:

        each_checkbox.click()

我的问题:

测试结果显示成功,但未选择复选框

我的定位器:

CHECKBOX_SELECTOR =(By.CSS_SELECTOR,“输入[type ='复选框']”)

HTML:

<span class="left">
<input id="id_qa-timesheets_facilitator_sign_complete" name="qa-timesheets_facilitator_sign_complete" type="checkbox">
<label>Time sheets complete with team lead sign off</label>
<br>
<span class="help_text"></span>
</span>

1 个答案:

答案 0 :(得分:0)

首先检查print checkboxes是否真正显示10个网络元素。如果是这样,但仍然无法点击复选框,请尝试使用click()中的JS方法而不是常用方法(有时常见的click()不起作用):

def select_checkbox():
    checkboxes = driver.find_elements_by_css_locator('input[type="checkbox"]')
    for each_checkbox in checkboxes:
        if not each_checkbox.is_selected(): # just to be sure that you make check, but not uncheck
            driver.execute_script('arguments[0].click()', each_checkbox)

由于我不熟悉您的框架,我将其设为简单的功能,因此根据需要进行更改