You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebDriver对象无find_elements_by_xpath属性报错求助(附关联代码)

报错原因分析与解决办法

报错原因

你使用的是Selenium 4.x版本,该版本已彻底移除了find_element_by_xpath、find_elements_by_tag_name这类旧的元素定位方法。这些方法在Selenium 3.x及更早版本中是合法的,但4.x开始被废弃并删除,因此调用时会抛出属性不存在的错误。

解决办法

有两种可行方案,推荐使用方案一:

方案一:适配Selenium 4.x的新API

  1. 先导入By类,在你的import部分添加:
    from selenium.webdriver.common.by import By
    
  2. 将旧的定位方法替换为新的调用格式:
    • 原代码中driver.find_element_by_xpath(...)替换为driver.find_element(By.XPATH, "...")
    • 原代码中tab.find_elements_by_tag_name('a')替换为tab.find_elements(By.TAG_NAME, 'a')

修改后的完整代码如下:

import re
import time
from datetime import datetime
from operator import itemgetter

import openpyxl
import pandas as pd
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By  # 新增导入

driver = webdriver.Chrome()
driver.minimize_window()

url = 'https://www.sbostats.com/partite'

tgame = []

driver.get(url)

# 替换xpath定位方法
tab = driver.find_element(By.XPATH, "/html/body/div[2]/div[3]/div/div/div[2]/app-root/div/app-matches/section")
# 替换tag_name定位方法
tab1 = tab.find_elements(By.TAG_NAME, 'a')

方案二:降级到Selenium 3.x版本(不推荐)

如果你暂时不想修改代码,可以通过pip降级Selenium到3.x系列的最新版本,执行命令:

pip uninstall selenium -y
pip install selenium==3.141.0

但此方案不推荐,因为Selenium 3.x已停止维护,后续可能会出现兼容性问题。

内容的提问来源于stack exchange,提问作者D M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:10:58