Selenium运行报错:'str'对象无'capabilities'属性,WebDriver无法定位
问题描述
运行Selenium时遇到以下错误:
AttributeError: 'str' object has no attribute 'capabilities'
使用的代码如下:
from selenium import webdriver browser = webdriver.Chrome("chromedriver.exe") browser.get("https://www.youtube.com/")
已尝试将WebDriver放在多个路径下,包括:
C:\Program Files (x86)\chromedriver.exe
以及
./chromedriver.exe
且已安装最新版本的Selenium,问题仍未解决。
解决方案
这个错误是因为Selenium 4.x版本重构了驱动管理逻辑,webdriver.Chrome()不再直接接受驱动路径字符串作为参数,必须通过Service对象来指定驱动路径。
方法1:使用Service类指定驱动路径
修改代码如下:
from selenium import webdriver from selenium.webdriver.chrome.service import Service # 替换为你的chromedriver实际路径 service = Service("chromedriver.exe") browser = webdriver.Chrome(service=service) browser.get("https://www.youtube.com/")
方法2:利用Selenium Manager自动管理驱动(推荐)
如果你的Selenium版本是4.6.0及以上,无需手动下载和指定chromedriver路径,Selenium会自动通过内置的Selenium Manager工具下载匹配版本的驱动,代码可以简化为:
from selenium import webdriver browser = webdriver.Chrome() browser.get("https://www.youtube.com/")
额外检查点
- 若手动指定驱动,确保Chrome浏览器版本与chromedriver版本完全匹配,版本不匹配也可能引发异常。
- 若使用虚拟环境,确认Selenium已安装在当前虚拟环境中。
内容的提问来源于stack exchange,提问作者Maxwell
相关产品推荐
相关产品推荐

