Невозможно нажать на кнопку, используя Selenium Python - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь нажать на эту кнопку, чтобы перейти на следующую страницу, но по какой-то причине я не могу. Я пробовал xpath, css и селекторы классов, а также атрибут data-trekkie-id, но ничего из того, что я пробовал, не сработало. Любая помощь? Код ниже:

<div class="step__footer" data-step-footer="">
    <button name="button" type="submit" class="step__footer__continue-btn btn " data-trekkie-id="continue_to_shipping_method_button" aria-busy="false">
        <span class="btn__content">
            Continue to shipping method
        </span>
    </button>
</div>

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Это должно работать:

driver.find_element_by_xpath("//*[contains(local-name(), 'button') and contains(@class, 'step__footer__continue-btn')]").click()
0 голосов
/ 15 ноября 2018

В соответствии с HTML для вызова метода click() для кнопки с текстом Перейти к способу доставки вам нужно вызвать WebDriverWait , и вы можете использоватьодно из следующих решений:

  • Использование CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.step__footer__continue-btn.btn[data-trekkie-id='continue_to_shipping_method_button']>span.btn__content"))).click()
    
  • Использование XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='step__footer__continue-btn btn' and @data-trekkie-id='continue_to_shipping_method_button']/span[@class='btn__content']"))).click()
    
  • Примечание : необходимо добавить следующий импорт:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...