如何使用 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
我的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