Chrome 107版本Selenium测试driver.get()超时问题求助
Chrome更新后Selenium
driver.get()抛出TimeoutException(Mac OS) 问题信息
环境
- Selenium版本:4.5.3
- WebDriver Manager版本:5.3.0
- 本地Chrome版本:107.0.5304.87
- 操作系统:Mac OS
症状
本地使用Chrome运行测试时,driver.get()方法抛出TimeoutException,但Firefox浏览器可正常执行测试。问题在Chrome自动更新后出现,已尝试以下操作但未解决:
- 替换为手动下载的对应版本ChromeDriver(107.0.5304.62)
- 更新Selenium和WebDriver Manager至最新版本
报错日志
15:41:34.598 INFO Using chromedriver 107.0.5304.62 (resolved driver for Chrome 107) 15:41:34.618 INFO Exporting webdriver.chrome.driver as /Users/norayr.sargsyan/.cache/selenium/chromedriver/mac64/107.0.5304.62/chromedriver Starting ChromeDriver 107.0.5304.62 (1eec40d3a5764881c92085aaee66d25075c159aa-refs/branch-heads/5304@{#942}) on port 21156 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. Oct 31, 2022 3:41:36 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch WARNING: Unable to find an exact match for CDP version 107, so returning the closest version found: 106 org.openqa.selenium.TimeoutException: java.util.concurrent.TimeoutException Build info: version: '4.5.3', revision: '4b786a1e430' System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.16', java.version: '11.0.10' Driver info: org.openqa.selenium.chrome.ChromeDriver Command: [3c1f94f7071ec62f235edda9a3827a1f, get {url=https://vbs-dev-qa-auto.bynder.com}] Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 107.0.5304.87, chrome: {chromedriverVersion: 107.0.5304.62 (1eec40d3a576..., userDataDir: /var/folders/cb/jcvpr2vx6ln...}, goog:chromeOptions: {debuggerAddress: localhost:50070}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: MAC, proxy: Proxy(), se:cdp: ws://localhost:50070/devtoo..., se:cdpVersion: 107.0.5304.87, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
解决方案
1. 修复CDP版本不匹配问题
日志中CDP版本匹配警告是核心诱因之一:
- 升级Selenium到4.6.0+:Selenium 4.6.0及以上版本内置了CDP版本自动适配逻辑,彻底解决版本不兼容问题。
- 若无法升级,手动指定CDP版本:初始化ChromeDriver时添加能力参数,强制匹配当前Chrome的CDP版本。示例Java代码:
ChromeOptions options = new ChromeOptions(); options.setCapability("se:cdpVersion", "107.0.5304.87"); ChromeDriver driver = new ChromeDriver(options);
2. 调整Chrome启动参数
添加以下参数绕过环境限制:
ChromeOptions options = new ChromeOptions(); // 禁用沙箱(Mac部分环境存在权限冲突) options.addArguments("--no-sandbox"); // 禁用GPU加速,避免渲染阻塞 options.addArguments("--disable-gpu"); // 禁用扩展,排除第三方干扰 options.addArguments("--disable-extensions"); // 设置页面加载策略为'eager',无需等待所有资源加载完成 options.setPageLoadStrategy(PageLoadStrategy.EAGER); ChromeDriver driver = new ChromeDriver(options);
3. 确保ChromeDriver与Chrome版本精确匹配
ChromeDriver 107.0.5304.62与你的Chrome 107.0.5304.87为同大版本但小版本差异,部分场景下会导致兼容性问题:
- 下载与Chrome完全一致的ChromeDriver版本(107.0.5304.87),手动替换现有驱动文件。
- 使用WebDriver Manager时强制指定版本:
WebDriverManager.chromedriver().driverVersion("107.0.5304.87").setup();
4. 检查系统权限与网络
- 给ChromeDriver添加执行权限:终端执行
chmod +x /Users/norayr.sargsyan/.cache/selenium/chromedriver/mac64/107.0.5304.62/chromedriver - 手动用Chrome打开目标URL,确认页面能正常加载,排除网站或网络故障。
- 临时关闭防火墙、代理工具,避免拦截ChromeDriver与Chrome的本地通信。
5. 重置Chrome配置
Chrome更新后可能残留异常配置:
- 关闭所有Chrome窗口,终端执行
rm -rf ~/Library/Application\ Support/Google/Chrome/Default(注意备份书签等数据),重置后重新运行测试。
内容的提问来源于stack exchange,提问作者Norayr Sargsyan
相关产品推荐
相关产品推荐

