Selenium使用XPath定位元素报错:WebDriver无find_elements_by_xpath属性
Selenium中find_elements_by_xpath报错的解决办法
报错核心原因:你用的是Selenium 4.x版本,而视频里演示的是Selenium 3.x及更早的旧版本。4.x已经彻底移除了
find_elements_by_xpath这类直接挂在WebDriver对象上的定位方法,改用统一的API格式。正确的替代写法:
- 先导入By类:
from selenium.webdriver.common.by import By - 用
find_elements()方法配合By.XPATH来定位:# 替换成你的XPath表达式 elements = driver.find_elements(By.XPATH, "//你的XPath路径")
完整示例:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("目标网页URL") # 定位所有按钮元素 buttons = driver.find_elements(By.XPATH, "//button")- 先导入By类:
关于定位选项少的问题:新版本Selenium把所有定位方式(XPATH、CSS_SELECTOR、ID等)都整合到了By类中,所以你看到的直接选项变少是正常的,通过By类就能调用所有定位方法。
不推荐的兼容方案(仅作参考):如果非要照搬视频里的旧代码,可以安装指定旧版本的Selenium:
pip install selenium==3.141.0但不建议这么做,旧版本存在安全风险,且后续不再维护。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

