Selenium无法连接Chrome服务,无法打开指定URL求助
解决方案
核心错误修正
你代码里的关键问题:Service对象需要传入ChromeDriver可执行文件的路径,但你现在传的是Chrome浏览器的chrome.exe路径,这直接导致WebDriver无法建立服务连接。
修正后的基础代码:
from selenium import webdriver from selenium.webdriver.chrome.service import Service # 替换为你的ChromeDriver实际路径 service_obj = Service(r"C:\xx\xx\xx\chromedriver.exe") # 初始化driver对象(你之前漏了这一步) driver = webdriver.Chrome(service=service_obj) driver.get("https://www.cnn.com/") # 操作完成后关闭浏览器 driver.quit()
如果用webdriver_manager自动匹配驱动,可简化为:
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service # 自动下载并匹配对应版本的ChromeDriver service_obj = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service_obj) driver.get("https://www.cnn.com/") driver.quit()
额外排查步骤
- 严格匹配版本:Chrome 117必须对应ChromeDriver 117.x.x.x,大版本号必须完全一致,不能混用不同版本的驱动。
- 检查驱动权限:右键ChromeDriver.exe,选择「以管理员身份运行」,或给当前用户赋予该文件的读取/执行权限。
- 禁用Chrome自动更新:若Chrome自动升级,会导致驱动版本不匹配,可通过组策略或修改注册表关闭自动更新。
- 添加Chrome启动参数:避免权限或配置冲突,比如:
from selenium.webdriver.chrome.options import Options options = Options() options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") # 可指定本地Chrome用户数据目录,避免临时配置问题 options.add_argument(r"--user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data") driver = webdriver.Chrome(service=service_obj, options=options) - 检查代理设置:系统全局代理可能导致Chrome无法加载外部URL,可临时关闭代理,或在ChromeOptions中配置代理参数。
- 修复host文件:取消注释
127.0.0.1 localhost和::1 localhost,确保本地回环地址正常解析,这会影响WebDriver与浏览器的通信。
内容的提问来源于stack exchange,提问作者Taranbir Singh
相关产品推荐
相关产品推荐

