Chrome默认配置文件会话中重定向URL触发Selenium WebDriverException问题
问题描述
使用Selenium 4.10 + Chrome 114时,尝试通过Python脚本复用已登录的Chrome默认配置文件打开指定URL,初始化WebDriver时触发WebDriverException。
错误栈片段
WebDriverException Traceback (most recent call last) Cell In[13], line 2 1 # Create a new instance of the Chrome driver with the specified options ----> 2 driver = webdriver.Chrome(options=options) 4 # Add a delay before opening the URL 5 time.sleep(3) File ~\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver\chrome\webdriver.py:49, in WebDriver.__init__(self, options, service, keep_alive) 45 self.keep_alive = keep_alive 47 self.service.path = DriverFinder.get_path(self.service, self.options) ---> 49 super().__init__( 50 DesiredCapabilities.CHROME["browserName"], 51 "goog", 52 self.options, 53 self.service, 54 self.keep_alive, 55 ) File ~\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver\chromium\webdriver.py:54, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, options, service, keep_alive) 51 self.service.start() 53 try: ---> 54 super().__init__( 55 command_executor=ChromiumRemoteConnection( 56 remote_server_addr=self.service.service_url, ...
涉事脚本
from selenium import webdriver import time from selenium.webdriver.chrome.options import Options user_data_dir = 'C:/Users/saura/AppData/Local/Google/Chrome/User Data/' options = Options() options.add_argument(f'--user-data-dir={user_data_dir}') options.add_argument(f'--profile-directory=Default') driver = webdriver.Chrome(options=options) time.sleep(3) driver.get('https://google.com')
需求:复用当前已登录的Chrome默认配置文件会话打开指定URL。
解决方案
1. 关闭所有Chrome进程
Chrome用户数据目录被占用时,Selenium无法加载配置文件:
- 打开任务管理器,结束所有
chrome.exe进程 - 重新运行脚本
2. 修正路径格式
Windows路径建议用原始字符串或双反斜杠避免转义问题:
# 方式1:原始字符串 user_data_dir = r'C:\Users\saura\AppData\Local\Google\Chrome\User Data' # 方式2:双反斜杠 user_data_dir = 'C:\\Users\\saura\\AppData\\Local\\Google\\Chrome\\User Data'
3. 验证版本兼容性
确认ChromeDriver与Chrome主版本完全匹配(均为114.x):
- Chrome版本查看:输入
chrome://version/ - ChromeDriver版本查看:终端执行
chromedriver --version
4. 提升权限运行脚本
右键点击Python IDE或终端,选择「以管理员身份运行」后执行脚本,避免权限不足问题
5. 连接已运行的Chrome实例(备选)
若需复用当前活跃的Chrome会话,按以下步骤操作:
- 关闭所有Chrome进程
- 打开命令提示符执行:
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\Users\saura\AppData\Local\Google\Chrome\User Data"
- 修改脚本连接该实例:
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") driver = webdriver.Chrome(options=options) driver.get('https://google.com')
内容的提问来源于stack exchange,提问作者Sourabh
相关产品推荐
相关产品推荐

