Как установить флажок с помощью Selenium в Python - PullRequest
0 голосов
/ 13 марта 2019

У меня проблема с этим флажком. Я пытался щелкнуть поисковый элемент с идентификатором, именем, XPath, CSS-селектором и содержит текст, но все равно не смог установить этот флажок. Кроме того, я пробовал использовать другой сайт с похожим HTML-кодом, и на этом сайте было достаточно найти идентификатор и нажать кнопку. Есть идеи?

<div class="agree-box-term">
    <input tabindex="75" id="agree" name="agree" type="checkbox" value="1">
    <label for="agree" class="checkbox-special">* Zapoznałam/em się z <a href="https://worldbox.pl/content/regulamin,27.html" target="_blank">Regulaminem sklepu internetowego</a> i akceptuję jego postanowienia.<br></label>
</div>

Вот мой код Python https://codeshare.io/5zo0Jj

Ответы [ 4 ]

1 голос
/ 13 марта 2019

Я не знаю, почему это так, но по моему опыту некоторые окна не принимают щелчок, но принимают триггер «mousedown».

попробовать:

driver.execute_script('$("div.agree-box-term input#agree").trigger("mousedown")')

Это решение полагается на jquery на странице, если это не так, мы можем написать его в javascript

1 голос
/ 13 марта 2019

Я использовал javaScript Executor, и он щелкает по элементу. Однако я также проверял, что щелчок веб-драйвера не работает.

driver.execute_script("arguments[0].click();", driver.find_element_by_id("agree"))
0 голосов
/ 13 марта 2019
r = driver.find_element_by_xpath("//*[@id="form-order"]/div[2]/div[4]/label")
r.click()

Это работает для вас? Иногда это просто вопрос выбора правильного xpath или добавления скобок после щелчка.

0 голосов
/ 13 марта 2019

Содержит ли ваш код вложенные теги html? Например:

<html>

    <div>

        <p> Some text </p>

        <html>
            That block can't be traversed!
        </html>

    </div>

</html>

Все, что находится во вторых HTML-тегах , невозможно просмотреть или получить к нему доступ. Попробуйте проверить, так ли это.


В любом другом случае следующий код прекрасно работает для вашего фрагмента:

driver.find_element_by_css_selector('#agree').click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...