如何单击特定复选框

时间:2018-04-26 18:11:55

标签: python-3.x selenium selenium-webdriver xpath css-selectors

我想点击"选择页面"复选框位于"全部"下拉选项。

HTML:

<ul class="list-unstyled">
    <li>
        <input id="selectAllTop" name="selectAllCheckBox" attr-sel="All" type="checkbox" value="true" /><input type="hidden" name="_selectAllCheckBox" value="on" />
        <label for="selectAllTop" class="checkbox-label" title="Select all results">Select all</label>
    </li>
    <li>
        <input id="selectPageTop" name="selectPageCheckBox" attr-sel="Page" type="checkbox" value="true" /><input type="hidden" name="_selectPageCheckBox" value="on" />
        <label for="selectPageTop" class="checkbox-label" title="Select page results">Select page</label>
    </li>
</ul>

我收到此错误:

ElementNotVisibleException: Message: element not visible

我已经成功选择了#34; All&#34;按钮,但在复选框中有问题,这是我做的代码,但它不起作用。

button=driver.find_element_by_xpath("//div[@id='selectAllOrPage']//button[@type='button']")
button.click()

time.sleep(5)
checkboxes = driver.find_element_by_xpath("//input[@id='selectPageTop' and @type='checkbox']")
checkboxes.click()

任何类型的帮助都会很明显。

谢谢

1 个答案:

答案 0 :(得分:0)

根据 HTML ,您已共享<input>标记,其中包含一个兄弟<label>标记。因此,要点击复选框选择页面,您可以使用以下代码行:

  • css_selector

    driver.find_element_by_css_selector("ul.list-unstyled li label[for=selectPageTop]").click()
    
  • xpath

    driver.find_element_by_xpath("//ul[@class='list-unstyled']//li//label[@for='selectPageTop']").click()