如何通过python和selenium在html上单击文本为Continue的按钮

时间:2018-07-04 02:10:53

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

我试图在Python中使用Selenium单击以下按钮“继续”。

<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 :(得分:0)

您可以使用此:-

driver.execute_script("arguments[0].click();", x) 

答案 1 :(得分:0)

按照您提供的HTML,看来元素为 Continue 的元素位于 Modal对话框中,因此您必须引入 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()