解决运行Selenium报错:self.driver = webdriver.Chrome(service=service) TypeError: __init__() got an unexpected keyword argument ‘service’
这个错误说明你在使用 webdriver.Chrome(service=service)
的方式初始化 Selenium 的 Chrome 浏览器驱动时,传入了一个不被支持的参数 service
,引发了 TypeError
。
💡 错误分析:
报错信息:
TypeError: __init__() got an unexpected keyword argument 'service'
说明当前的 webdriver.Chrome()
方法 不接受 service
参数。这是由于你当前使用的 Selenium 版本较旧(如 v3.x 或更早),而 service=...
是在 Selenium 4.0+ 中才新增支持的方式。
✅ 解决方案:
✅ 方法一:升级 Selenium 到 4.x 或更高版本(推荐)
如果你能控制环境,推荐直接升级 Selenium,以使用最新的 API 和功能。
升级命令:
pip install --upgrade selenium
然后就可以继续使用如下代码:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path='path_to_chromedriver')
driver = webdriver.Chrome(service=service)
pythonCopyEditfrom selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path='path_to_chromedriver')
driver = webdriver.Chrome(service=service)
✅ 方法二:使用旧版兼容方式(如果不能升级)
如果你的环境限制不能升级 Selenium,则要用旧的写法来初始化 ChromeDriver
:
from selenium
import webdriver
driver = webdriver.Chrome(executable_path='path_to_chromedriver')
注意:这在 Selenium 3.x 中是兼容的写法,executable_path
是直接传给 Chrome()
的。
🔍 如何确认当前 selenium 版本
可以在 Python 中运行以下代码查看当前版本:
import selenium
print(selenium.__version__)
总结:
方案 | 适用场景 | 初始化方式 |
---|---|---|
升级 Selenium 到 v4+ | 推荐,未来兼容性好 | webdriver.Chrome(service=Service(...)) |
保持旧版本 | 有环境限制无法升级 | webdriver.Chrome(executable_path=...) |