【问题标题】:Unable to click on Button using Selenium Python无法使用 Selenium Python 单击按钮
【发布时间】:2018-11-15 00:58:16
【问题描述】:

我正在尝试单击此按钮以转到下一页,但由于某种原因,我无法做到。我尝试了 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>

【问题讨论】:

  • 点击后有什么错误或异常吗?
  • 那不是代码;那是html,它只是等式的一半。向我们展示代码

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


【解决方案1】:

根据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
    

【讨论】:

    【解决方案2】:

    这应该可行:

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

    【讨论】:

      猜你喜欢
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多