Selenium启动Chrome失败求助:版本兼容及代码问题
解决Chrome与ChromeDriver兼容及启动报错问题
1. 修复 AttributeError: 'str' object has no attribute 'capabilities'
你第一段代码的写法是旧版Selenium(3.x及以下)的用法,新版Selenium 4.x+已经不再支持直接将驱动路径作为参数传入webdriver.Chrome(),必须通过Service类指定驱动路径。
修正后的代码:
from selenium import webdriver from selenium.webdriver.chrome.service import Service chromepath = r"C:\Users\hp\Desktop\Automation\chromedriver.exe" # 用Service类封装驱动路径 service = Service(chromepath) driver = webdriver.Chrome(service=service) driver.get('http://www.google.com') # 避免浏览器执行完就关闭,等待用户输入后再退出 input("按回车关闭浏览器...") driver.quit()
2. 解决ChromeDriver与Chrome版本不兼容问题
你的Chrome版本是123.0.6312.106,必须使用匹配的ChromeDriver版本(官方推荐123.0.6312.105),你之前用的114版本驱动完全不匹配,这就是浏览器闪关的核心原因。
手动匹配驱动
直接下载123.0.6312.105版本的ChromeDriver,替换你当前路径下的旧驱动文件即可。
自动管理驱动(更省心)
安装webdriver-manager库,它会自动检测你的Chrome版本,下载并配置对应驱动,无需手动操作:
- 安装库:
pip install webdriver-manager
- 使用代码:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # 自动下载匹配的驱动并启动浏览器 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) driver.get('http://www.google.com') input("按回车关闭浏览器...") driver.quit()
补充:浏览器闪关的额外原因
之前的代码没有阻止程序结束的逻辑,当driver.get()执行完成后,脚本就会终止,浏览器随之关闭。加上input()语句可以让浏览器保持打开状态,直到你主动触发退出。
内容的提问来源于stack exchange,提问作者AFREEN POLY
相关产品推荐
相关产品推荐

