返回

Chrome 124 更新后 Selenium 崩溃?试试这几个解决方案

java

Chrome 124 更新后 Selenium-java 并发测试导致电脑崩溃?这份解决方案来了!

最近,不少小伙伴在使用 Selenium-java 进行并发测试时,遇到了电脑卡死、崩溃的现象,罪魁祸首直指 4 月 16 日更新的 Chrome 浏览器 v124 版本。原本运行流畅的测试用例,现在执行到一半就卡顿,浏览器网页打不开,鼠标也不听使唤,最后只能被迫重启。IntelliJ 控制台更是“雪上加霜”,抛出一堆类似 "timeout: Timed out receiving message from renderer" 和 "WARNING: Failed to shutdown Driver Command Executor" 的错误信息,让人头大。

究其原因,是 Selenium-java 尚未发布支持最新版 Chrome 浏览器所使用的 CDP 124 协议的版本,导致两者“水土不服”。

别急,虽然 Selenium 官方还没推出正式解决方案,但我们可以通过一些方法“曲线救国”,解决这个棘手的问题。

1. 回到过去:降级 Chrome 浏览器版本

最简单粗暴的办法,就是将 Chrome 浏览器版本降级至 v123 或更早版本。

  • 首先,彻底卸载当前版本的 Chrome 浏览器,不留一丝痕迹。
  • 然后,前往 Chrome 浏览器历史版本下载网站 (https://www.slimjet.com/chrome/google-chrome-old-version.php),下载 v123 或更早版本的安装包。
  • 最后,安装旧版本浏览器,一切恢复如初。

不过,需要注意的是,浏览器降级可能会导致一些新功能无法使用,建议在操作前备份重要数据,以防万一。

2. “化整为零”:减少并发测试数量

如果项目进度不允许降级浏览器版本,可以尝试减少并发测试的数量,给电脑“减减负”。

  • 修改测试脚本或测试框架的配置,限制同时运行的测试用例数量。比如,之前同时运行 64 个测试用例,可以尝试减少到 8-12 个,分批进行测试。
  • 逐步增加并发测试数量,观察系统的稳定性,找到一个最佳的并发数量,既能保证测试效率,又不会让电脑“崩溃”。

3. “尝鲜”体验:使用 ChromeDriver Beta 版本

Selenium 团队通常会针对 Chrome 浏览器的 Beta 和 Dev 版本发布对应的 ChromeDriver Beta 版本,我们可以尝试使用这些“尝鲜”版本解决问题。

  • 访问 ChromeDriver 下载页面 (https://chromedriver.chromium.org/downloads),找到与当前 Chrome 浏览器版本匹配的 Beta 版本 ChromeDriver。
  • 下载 Beta 版本 ChromeDriver,替换掉现有的 ChromeDriver 文件。

需要注意的是,Beta 版本的 ChromeDriver 可能存在一些稳定性问题,建议在测试环境中使用,不要直接用于生产环境。

4. “精雕细琢”:优化测试代码

除了外部因素,测试代码本身的问题也可能导致电脑崩溃,例如资源泄漏、长时间占用资源等。

  • 仔细检查测试代码,找出是否存在未关闭的浏览器窗口、未释放的内存等问题,并进行修复。
  • 优化测试代码,减少不必要的等待时间,提高测试效率,也能间接减轻电脑负担。

5. “静候佳音”:关注 Selenium 官方更新

最根本的解决方法,还是等待 Selenium 官方发布支持 CDP 124 的新版本。

  • 密切关注 Selenium 官方网站和 GitHub 仓库的更新动态,一旦有新版本发布,及时更新 Selenium-java 库。

相信在不久的将来,Selenium 团队就会解决这个问题,让我们拭目以待吧!

常见问题解答

1. 为什么 Chrome 浏览器更新后,Selenium-java 测试会出现问题?

这是因为 Chrome 浏览器更新后,可能会更改其内部 API 或使用的协议版本,而 Selenium-java 需要及时更新才能兼容这些变化。

2. 除了上述方法,还有其他解决方法吗?

可以尝试使用其他浏览器进行测试,例如 Firefox、Edge 等。

3. 如何避免类似问题再次发生?

  • 及时关注 Selenium 和 Chrome 浏览器的更新动态。
  • 在测试环境中使用多个版本的浏览器进行测试,以确保代码的兼容性。

4. Beta 版本的 ChromeDriver 是否稳定?

Beta 版本的 ChromeDriver 可能存在一些稳定性问题,建议在测试环境中使用,不要直接用于生产环境。

5. 如果以上方法都无法解决问题,该怎么办?

可以尝试联系 Selenium 官方或在 Stack Overflow 等技术论坛上寻求帮助。