Selenium WebDriver无法找到ChromeDriver问题求助
解决Selenium ChromeDriver意外退出(状态码1)及浏览器闪关问题
核心排查方向及解决方案
1. 修正路径转义错误
你的代码中PATH = 'C:\webdrivers\chromedriver.exe'存在转义字符解析问题,Python里\w会被识别为特殊转义符,导致驱动路径无法正确识别。解决方式二选一:
- 使用原始字符串:
PATH = r'C:\webdrivers\chromedriver.exe' - 转义反斜杠为双反斜杠:
PATH = 'C:\\webdrivers\\chromedriver.exe'
2. 改用Selenium 4.x推荐的Service类初始化
新版本Selenium已逐步弃用executable_path参数,改用Service类管理驱动,能更稳定处理启动逻辑:
import pandas as pd import requests from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.service import Service import time service = Service(r'C:\webdrivers\chromedriver.exe', log_path='D:\\qc1.log') web = webdriver.Chrome(service=service) url = 'https://www.google.com/' web.get(url) # 保持浏览器不自动关闭 input("按回车键关闭浏览器...") web.quit()
3. 检查ChromeDriver权限与拦截问题
- 右键ChromeDriver.exe,选择以管理员身份运行,测试是否能正常启动
- 排查杀毒软件或防火墙是否拦截了ChromeDriver,可临时关闭防护软件后再测试
4. 指定Chrome二进制文件路径
如果Chrome未安装在默认路径,WebDriver可能无法找到浏览器,需手动指定:
from selenium.webdriver.chrome.options import Options options = Options() # 替换为你的Chrome实际安装路径 options.binary_location = r'C:\Program Files\Google\Chrome\Application\chrome.exe' service = Service(r'C:\webdrivers\chromedriver.exe', log_path='D:\\qc1.log') web = webdriver.Chrome(service=service, options=options) web.get('https://www.google.com/') input("按回车键关闭浏览器...") web.quit()
5. 分析详细日志定位问题
查看你指定的日志文件D:\\qc1.log,里面会记录ChromeDriver启动的详细错误信息,比如:
- 是否无法找到Chrome二进制文件
- 是否存在权限不足提示
- 驱动与浏览器的版本匹配细节
6. 解决浏览器短暂打开后自动关闭问题
脚本执行完web.get(url)后会立即结束进程,导致浏览器自动关闭。只需在代码末尾添加阻塞逻辑即可保持会话:
# 方法1:等待固定时间 time.sleep(10) # 方法2:等待用户输入后关闭 input("按回车键关闭浏览器...") # 最后手动关闭驱动 web.quit()
内容的提问来源于stack exchange,提问作者Ryan Maxin
相关产品推荐
相关产品推荐

