如何使用 Xpath Selenium 和 Python 定位 span 元素

How to locate the span element with Xpath Selenium and Python

我的HTML格式如下:

***按钮class="btn授权解锁"

span>验证

按钮***

所以当我使用 "browser.find_element_by_xpath('//span[@class = "btn authorize unlocked"]')" 定位这个按钮,找不到那个。

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[@class = "btn authorize unlocked"]"} 

那么我应该改变什么?

要定位元素,您可以使用以下任一方法 :

  • 使用css_selector:

    element = driver.find_element(By.CSS_SELECTOR, "button.btn.authorize.unlocked > span")
    
  • 使用xpath:

    element = driver.find_element(By.XPATH, "//button[@class='btn authorize unlocked']/span[text()='Authenticate']")
    

理想情况下,要找到需要为 visibility_of_element_located() 引入 WebDriverWait 的元素,您可以使用以下任一方法 :

  • 使用CSS_SELECTOR:

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button.btn.authorize.unlocked > span")))
    
  • 使用XPATH:

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//button[@class='btn authorize unlocked']/span[text()='Authenticate']")))
    
  • 注意:您必须添加以下导入:

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