如何在Selenium中为如下两种场景编写定位span标签的XPath

XPath定位方案
基础精准定位
直接通过span内置的文本精准匹配,适配绝大多数场景:
- 场景1定位语句:
//span[text()='场景1'] - 场景2定位语句:
//span[text()='场景2']
兼容空格/特殊字符的模糊定位
如果文本前后存在不可见空格,可以用模糊匹配方式:
- 场景1定位语句:
//span[contains(text(),'场景1')] - 场景2定位语句:
//span[contains(text(),'场景2')]
Selenium调用示例
基础定位写法(Python版)
from selenium.webdriver.common.by import By # 定位场景1元素 scene1_span = driver.find_element(By.XPATH, "//span[text()='场景1']") # 定位场景2元素 scene2_span = driver.find_element(By.XPATH, "//span[text()='场景2']")
加显式等待的稳定写法(避免元素未加载报错)
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 最长等待10秒,直到场景1元素加载完成 scene1_span = WebDriverWait(driver, 10).until( EC.visibility_of_element_located((By.XPATH, "//span[text()='场景1']")) ) # 最长等待10秒,直到场景2元素加载完成 scene2_span = WebDriverWait(driver, 10).until( EC.visibility_of_element_located((By.XPATH, "//span[text()='场景2']")) )
内容的提问来源于stack exchange,提问作者hadoopdeveloper
相关产品推荐
相关产品推荐

