使用Python Selenium启动Chrome报错:无法连接到chromedriver服务如何解决
Chrome启动报错Can not connect to the Service chromedriver排查方案
- 首先修正你现有代码的语法错误,你的代码存在3处明显问题:
- 变量名不匹配:定义的配置变量是
Chrome_opt,传参时误用了不存在的变量chrome_options - 参数写法过时:selenium 4.0+版本已经弃用
chrome_options参数,统一改用options - 请求地址缺少协议:
get方法的URL必须带http/https前缀,否则无法正常识别
修正后的参考代码如下:
import selenium from selenium import webdriver Chrome_opt = webdriver.ChromeOptions() # 如果chromedriver不在当前目录或系统PATH中,可以指定路径 # driver = webdriver.Chrome(executable_path=r"你的chromedriver绝对路径", options=Chrome_opt) driver = webdriver.Chrome(options=Chrome_opt) driver.get("https://www.google.com") - 变量名不匹配:定义的配置变量是
- 检查Chrome浏览器和chromedriver版本匹配
打开Chrome浏览器,进入「设置-关于Google Chrome」查看当前浏览器的大版本号(比如118.0.5993.88的大版本为118),下载对应大版本的chromedriver即可,小版本号不一致不影响使用。
如果你使用的是selenium 4.6及以上版本,不需要手动下载chromedriver,框架自带的Selenium Manager会自动匹配对应版本的驱动,直接删掉路径参数即可。 - 检查chromedriver路径配置
要么把chromedriver执行文件放到Python脚本的同级目录,要么在代码中填写chromedriver的绝对路径,Windows路径前面记得加r防止转义字符报错。 - 排查进程和拦截问题
- 打开任务管理器/活动监视器,结束所有残留的chromedriver进程后再重新运行脚本
- 临时关闭防火墙、安全软件,确认是否是安全工具拦截了chromedriver的启动请求
- Linux环境下可以额外添加两个启动参数规避权限问题:
Chrome_opt.add_argument("--no-sandbox") Chrome_opt.add_argument("--disable-dev-shm-usage")
内容的提问来源于stack exchange,提问作者Arvind Kumar Yadav
相关产品推荐
相关产品推荐

