Как нажать на конкретный флажок - PullRequest
0 голосов
/ 26 апреля 2018

Я хочу установить флажок «Выбрать страницу» в выпадающем меню «Все».

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

Я успешно выбрал кнопку «Все», но у меня возникла проблема с флажком, это код, который я сделал, но он не работает.

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 голосов
/ 27 апреля 2018

В соответствии с 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()
    
...