How to locate the button element using Selenium through Python

后端 未结 1 814
庸人自扰
庸人自扰 2020-12-22 13:33

I\'m trying to find the element and click for the button \"Not Now\". I\'ve tried with with css_selector, xpath, but I\"m unable at all to find the proper way.

HTML:

相关标签:
1条回答
  • 2020-12-22 14:07

    To locate and click() on the element with text as Not Now you can use the following Locator Strategy:

    • Using xpath:

      driver.find_element_by_xpath("//button[text()='Not Now']").click()
      

    However, the element looks dynamic to me so you need to induce WebDriverWait for the element_to_be_clickable() and you can use either of the following Locator Strategy:

    • Using XPATH:

      WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//div//button[text()='Not Now']"))).click()
      
    • Note : You have to add the following imports :

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
      

    Reference

    You can find a couple of relevant discussions in:

    • What does contains(., 'some text') refers to within xpath used in Selenium
    • While fetching all links,Ignore logout link from the loop and continue navigation in selenium java
    • How does dot(.) in xpath to take multiple form in identifying an element and matching a text
    0 讨论(0)
提交回复
热议问题