Как нажать на кнопку с текстом «Продолжить» в соответствии с HTML через Python и Селен - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь нажать на следующую кнопку «Продолжить», используя Selenium в Python.

<div class="sb-modal-section">
    <button class="sb-modal-button primary">Continue</button>
    <button class="sb-modal-button">Rules</button>
</div>

Я могу найти кнопку несколькими способами, включая:

x = driver.find_element_by_css_selector('.sb-modal-button.primary')

или

x = driver.find_element_by_xpath("//button[@class='sb-modal-button primary']")

который я знаю не должен работать из-за места.

Тем не менее,

x.click()

не выполняет действие продолжения. Я пробовал неявные и явные ожидания, но это не проблема. Он находит их обоих и может отображать x.text. Но щелчок не работает. Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

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

  • CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.sb-modal-section>button.sb-modal-button.primary"))).click()
    
  • XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='sb-modal-section']//button[@class='sb-modal-button primary'][contains(.,'Continue')]"))).click()
    
0 голосов
/ 04 июля 2018

Вы можете использовать это: -

driver.execute_script("arguments[0].click();", x) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...