Python Selenium如何定位并获取文本为51,756 results的对应元素
Python Selenium 定位结果统计文本的正确方案
原代码错误原因
- 调用
find_element_by_class_name()时不允许传入多个空格分隔的类名,该方法仅支持传入单个类名参数 - XPath表达式错误匹配了
h1标签,实际目标文本所在的元素是small标签,标签类型匹配错误
正确实现方式
方法1:通过标签+类属性组合定位XPath
# 直接匹配small标签的类属性,获取文本 result_text = driver.find_element(By.XPATH, '//small[@class="t-white display-flex t-12 t-black--light t-normal"]').text.strip()
方法2:通过aria-live属性定位(更稳定)
# aria-live是语义化无障碍属性,业务迭代时改动概率远低于class,定位可靠性更高 result_text = driver.find_element(By.XPATH, '//small[@aria-live="polite"]').text.strip()
方法3:匹配文本内容定位
# 模糊匹配包含results关键词的元素 result_text = driver.find_element(By.XPATH, '//small[contains(text(), "results")]').text.strip()
注意事项
- Selenium 4.0+版本已废弃
find_element_by_xxx写法,使用上述方法前需要先导入By类:
from selenium.webdriver.common.by import By
- 若元素是动态加载渲染的,建议增加显式等待避免偶现定位失败:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC wait = WebDriverWait(driver, 10) result_element = wait.until(EC.presence_of_element_located((By.XPATH, '//small[@aria-live="polite"]'))) result_text = result_element.text.strip()
内容的提问来源于stack exchange,提问作者Simon GIS
相关产品推荐
相关产品推荐

