Selenium搭配WebdriverManager报错:'str'对象无'capabilities'属性
错误成因及修复方案
错误原因
你当前使用的是Selenium 4.x版本,但代码是基于Selenium 3.x的写法:
- Selenium 3.x中,
webdriver.Chrome()的第一个参数可以直接传入驱动路径字符串; - 但Selenium 4.x重构了初始化逻辑,
webdriver.Chrome()的第一个参数只能接受ChromeOptions或ChromeService对象,你传入的ChromeDriverManager().install()返回的路径字符串被误识别为options参数,而字符串没有capabilities属性,因此抛出AttributeError。
修复代码
方案1:适配Selenium 4 + webdriver-manager
使用ChromeService包装驱动路径:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
方案2:Selenium 4.6+ 无需webdriver-manager
Selenium 4.6及以上版本自带Selenium Manager,会自动管理驱动,不需要额外安装webdriver-manager,直接初始化即可:
from selenium import webdriver driver = webdriver.Chrome()
内容的提问来源于stack exchange,提问作者zorals
相关产品推荐
相关产品推荐

