Нажмите на элемент HTML с JavaScript через драйвер селена не срабатывает - PullRequest
0 голосов
/ 21 сентября 2019

Я хочу щелкнуть элемент с javascript через драйвер селена с Python, это пример моего кода:

driver.execute_script("els=document.getElementsByClassName('buttons');\
    for (var i = 0; i < els.length; i++) {\
        open=els[i].parentNode.getElementsByClassName('button_open');\
        if(open.length==1){\
            alert('ok');\
        }else(\
            alert('not ok')\
            els[i].click();\
        )\
    }")

и html-кода:

<div class="buttonsParent">
    <div class="buttons button_open">
        <span>Content</span>
    </div>
</div>
<div class="buttonsParent">
    <div class="buttons">
        <span>Content</span>
    </div>
</div>

1 Ответ

0 голосов
/ 21 сентября 2019

Webdriver и Selenium иногда могут быть немного привередливы.Попробуйте щелкнуть с помощью xpath, это было самым успешным для меня.Проверьте элемент, щелкните правой кнопкой мыши на копии и скопируйте кнопку xpath.

Некоторые примеры кода будут выглядеть следующим образом:

website = 'url here'
driver = webdriver.Chrome()
driver.get(website)

variable = driver.find_element_by_xpath('xpath here')
driver.find_element_by_xpath('xpath here').click()

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

Это может помочь, так как имеет дело с javascript напрямую.

Есть ли способ получить элемент с помощью XPath, используя JavaScript в Selenium WebDriver?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...