Selenium最新版TypeError: WebDriver.__init__() got an unexpected keyword argument ‘executable_path‘

在新版本Selenium在执行下面程序时发生了报错,但是其实老版本是可以使用的,这里用的是

from selenium import webdriver
driver = webdriver.Chrome(executable_path=r'chromedriver-win64/chromedriver-win64/chromedriver.exe')
driver.get("https://www.baidu.com")
driver.quit()

在这里插入图片描述
报错信息如下:TypeError: WebDriver.init() got an unexpected keyword argument ‘executable_path’

Traceback (most recent call last):
  File "test.py", line 12, in <module>
    driver = webdriver.Chrome(executable_path=r'chromedriver-win64/chromedriver-win64/chromedriver.exe')
TypeError: WebDriver.__init__() got an unexpected keyword argument 'executable_path'

这里显示现在已经没有这个方法了,首先呢先双手奉上解决的代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service(executable_path=r'chromedriver-win64/chromedriver-win64/chromedriver.exe')
driver = webdriver.Chrome(service=service)
driver.get("https://www.baidu.com")
driver.quit()

解决思路,首先进入了Chrome的方法
在这里插入图片描述
大概意思是,如果你需要传递额外的详细信息,则用于处理浏览器驱动程序的服务对象,进入到Service
在这里插入图片描述
executable_path:chromedriver 可执行文件的安装路径,默认为“chromedriver”
有意思的就来了,这家伙原来呀是来这了,我说呢
于是我调用了服务,并传给Chrome 成功解决问题了!!!!

from selenium.webdriver.chrome.service import Service

service = Service(executable_path=r'chromedriver-win64/chromedriver-win64/chromedriver.exe')
driver = webdriver.Chrome(service=service)
<think>好的,用户遇到了Selenium中的TypeError,具体是WebDriver的__init__()方法收到了一个未预期的关键字参数,比如executable_path或service。我需要根据提供的引用信息来帮助解决这个问题。 首先,查看引用[1]和[2],用户在使用executable_path参数时出现错误。这可能是因为Selenium版本升级后,参数名称发生了变化。根据引用[3],升级Python到3.8可能解决类似问题,但更可能的是需要调整初始化WebDriver的方式。 现在,Selenium 4及以上版本已经弃用了executable_path参数,改为使用Service对象来指定驱动路径。因此,正确的做法是导入Service类,然后创建Service实例,并将其传递给service参数,而不是使用executable_path。 例如,旧代码可能是这样的: ```python from selenium import webdriver driver = webdriver.Chrome(executable_path='path/to/chromedriver') ``` 而新版本应该改为: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service('path/to/chromedriver') driver = webdriver.Chrome(service=service) ``` 这样就能避免参数错误。同时,用户需要确保他们的Selenium库已经更新到最新版本,因为旧版本可能不支持新的参数。如果用户仍然在使用较旧的Python版本,比如3.6,可能需要升级Python,如引用[3]所述,但更直接的办法是更新Selenium并调整代码。 此外,用户可能还需要检查是否正确安装了浏览器驱动,比如ChromeDriver,并且路径是否正确。如果路径错误,即使参数正确,也会导致其他错误。 总结解决方案步骤:1. 更新Selenium最新版本;2. 修改代码使用Service类;3. 确保驱动路径正确。同时,考虑升级Python版本以兼容新库的变化。</think>### 解决Selenium WebDriver初始化时的TypeError错误 当使用Selenium时,如果遇到类似`TypeError: WebDriver.__init__() got an unexpected keyword argument 'executable_path'`或`'service'`的错误,通常是由于Selenium版本升级后参数传递方式发生了变化。以下是具体解决方案: --- #### **1. 错误原因分析** - **旧版本Selenium**(如4.0之前)使用`executable_path`参数指定浏览器驱动路径: ```python from selenium import webdriver driver = webdriver.Chrome(executable_path='path/to/chromedriver.exe') ``` - **新版本Selenium**(4.0+)弃用了`executable_path`,改用`Service`对象传递驱动路径[^1][^2]: ```python from selenium.webdriver.chrome.service import Service service = Service('path/to/chromedriver.exe') driver = webdriver.Chrome(service=service) ``` --- #### **2. 解决方法** 1. **升级Selenium库** 确保Selenium版本≥4.0: ```bash pip install --upgrade selenium ``` 2. **修改代码适配新版本** 使用`Service`类初始化驱动: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service # 指定浏览器驱动路径 service = Service(r'chromedriver-win64/chromedriver.exe') driver = webdriver.Chrome(service=service) ``` 3. **检查Python版本兼容性** Selenium新特性可能需要Python≥3.7。若使用Python≤3.6,建议升级Python版本[^3]。 --- #### **3. 其他可能错误** - **路径错误**:确保驱动路径正确且文件存在。 - **驱动与浏览器版本不匹配**:下载与浏览器版本匹配的驱动(如[ChromeDriver](https://chromedriver.chromium.org/))。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南师大蒜阿熏呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值