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

使用Python版Webdriver Manager配置Selenium ChromeDriver时遇到类型错误问题

解决WebDriver Manager新版本里的TypeError: expected str, bytes or os.PathLike object, not tuple问题

兄弟,这个坑我前不久刚踩过!核心原因就是WebDriver Manager那次重大版本更新后,download_and_install()的返回值变了——它现在返回一个包含驱动路径和版本号的元组(driver_path, driver_version),而不是之前单独的路径字符串,你直接把这个元组传给webdriver.Chrome(),自然会触发类型错误。

结合你给的堆栈跟踪和conda安装的情况,给你两个靠谱的解决办法:

办法1:直接取元组里的路径元素

既然知道返回的是元组,咱们只需要把第一个元素(也就是chromedriver的实际路径)抽出来传给驱动就行:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdrivermanager.chrome import ChromeDriverManager

# 提取元组第一个元素作为驱动路径
driver_path = ChromeDriverManager().download_and_install()[0]
driver = webdriver.Chrome(driver_path)
driver.get("http://www.python.org")

办法2:用更贴合Selenium 4+的现代写法

如果你用的是Selenium 4及以上版本,更推荐用Service类来管理驱动,而且WebDriver Manager还提供了更简洁的install()方法(这个方法返回的就是纯路径字符串),写法更规范:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdrivermanager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

# 用Service包装驱动路径
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.get("http://www.python.org")

关于conda安装的补充

你说用conda装的webdrivermanager,这个完全不影响——不管是pip还是conda安装,WebDriver Manager的API逻辑都是一样的,上面两个办法都能正常跑。

个人建议优先用办法2,不仅符合Selenium新版本的设计规范,还能避免以后API再变动又踩类似的坑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 23:07:44