新手求助:Python Selenium运行报错AttributeError: 'str'无'capabilities'属性
问题解决:AttributeError: 'str' object has no attribute 'capabilities'
错误原因
你代码中driver = webdriver.Chrome(ChromeDriverManager().install())的写法是Selenium 3.x的旧用法,而Selenium 4.x的webdriver.Chrome()构造函数不再接受直接传入驱动路径字符串,它需要的是ChromeOptions对象或Service对象,这就导致了报错里的字符串没有capabilities属性的问题。
解决方案
方案1:使用Selenium自带的驱动管理(推荐,无需额外依赖)
Selenium 4.6及以上版本内置了Selenium Manager,会自动检测、下载并匹配对应版本的浏览器驱动,不需要再安装webdriver-manager包。代码示例:
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 初始化浏览器配置(可选,可添加无头模式等参数) chrome_options = Options() # chrome_options.add_argument("--headless=new") # 如需无头运行可取消注释 # 启动浏览器 driver = webdriver.Chrome(options=chrome_options) # 测试访问网页 driver.get("https://www.example.com") # 后续操作... # 关闭浏览器 driver.quit()
方案2:继续使用ChromeDriverManager(不推荐)
如果一定要保留webdriver-manager的使用,需要将驱动路径包装为Service对象后传入:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # 将驱动路径包装为Service对象 service = Service(ChromeDriverManager().install()) # 启动浏览器 driver = webdriver.Chrome(service=service) # 测试访问网页 driver.get("https://www.example.com") # 后续操作... # 关闭浏览器 driver.quit()
内容的提问来源于stack exchange,提问作者Python Learner
相关产品推荐
相关产品推荐

