Selenium4.22.0+Python3.12启动浏览器后脚本无法执行求助
问题解决方案与版本变化说明
一、脚本问题修复步骤
1. 下载匹配版本的ChromeDriver
你当前使用的Chrome for Testing 126.0.6478.126需要对应版本的ChromeDriver,需从同资源库下载win64版本的ChromeDriver压缩包,解压后得到chromedriver.exe。
2. 修正路径转义与Service配置
- Windows路径中的
\会被Python识别为转义字符,需用**原始字符串前缀r或双反斜杠\\**避免警告。 - Service对象必须指向
chromedriver.exe而非Chrome浏览器的chrome.exe,同时可通过ChromeOptions指定Chrome二进制文件路径,确保版本严格匹配。
3. 修正后的测试代码
from selenium import webdriver from selenium.webdriver.chrome.service import Service # 配置ChromeDriver路径(原始字符串避免转义) serv_obj = Service(r"C:\VDFData\chromedriver-win64\chromedriver.exe") # 指定Chrome浏览器二进制文件路径 options = webdriver.ChromeOptions() options.binary_location = r"C:\VDFData\chrome-win64\chrome.exe" # 初始化驱动 driver = webdriver.Chrome(service=serv_obj, options=options) driver.get("https://github.com/") driver.close()
二、Selenium 4.22.0 + Chrome 126的其他核心变化
除服务对象、定位器语法外,还有以下关键变化:
- Chrome for Testing(CfT)强制适配:Chrome 115+官方推荐使用CfT版本,Selenium 4.10+内置支持自动匹配下载CfT和ChromeDriver,无需手动管理版本对应关系。
- BiDi API增强:完善Chrome DevTools Protocol(CDP)的双向接口支持,可更简洁地监听网络请求、修改响应、获取页面日志等。
- 元素交互稳定性优化:针对Chrome 126的页面渲染机制调整了元素点击、输入等操作逻辑,减少交互超时或失败概率。
- 旧API完全移除:
find_element_by_id等旧定位方法彻底移除,必须使用find_element()配合By类;DesiredCapabilities被弃用,全部改用Options类配置浏览器参数。 - 自动等待机制优化:隐式等待与显式等待的兼容性提升,适配Chrome 126的异步加载逻辑,降低元素定位失败率。
- 无头模式更新:默认启用
--headless=new新无头模式,行为更接近真实浏览器,旧的--headless参数被标记为废弃。
内容的提问来源于stack exchange,提问作者Goutham
相关产品推荐
相关产品推荐

