无法使用Selenium Python单击Button

时间:2018-11-15 00:58:17

标签: python selenium selenium-webdriver xpath css-selectors

我试图单击此按钮转到下一页,但是由于某种原因,我无法这样做。我尝试了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 :(得分:0)

按照 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
    

答案 1 :(得分:0)

这应该有效:

driver.find_element_by_xpath("//*[contains(local-name(), 'button') and contains(@class, 'step__footer__continue-btn')]").click()