You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac(M1芯片)上Selenium Java脚本突然运行缓慢求助

问题分析与解决方案

核心问题定位方向

你的脚本突然变慢、甚至执行失败,大概率是Chrome版本与Selenium版本不兼容,再加上几个配置细节放大了问题,逐个拆解:

1. Chrome与Selenium的版本兼容性冲突

Chrome 124是2024年4月推出的新版本,而你使用的Selenium 4.19.1是2024年3月发布的——这个版本的Selenium还未适配Chrome 124的驱动逻辑。即使Selenium自带自动管理驱动的功能,当浏览器版本超出Selenium支持范围时,会出现驱动匹配失败、通信延迟甚至崩溃的情况。

2. 系统默认用户目录的资源竞争

你配置了--user-data-dir=/Users/nitesh/Library/Application Support/Google/Chrome,直接指向Mac上Chrome的默认用户数据目录。如果日常使用的Chrome浏览器在后台运行,测试脚本的Chrome实例会和正常实例争抢同一个配置文件的读写权限,导致浏览器响应缓慢、锁死甚至崩溃。

3. Multipass扩展的兼容性问题

Chrome版本更新后,旧版本的Multipass扩展可能存在兼容性bug,导致浏览器加载、运行时资源占用过高,拖慢整个测试流程。


具体解决步骤

步骤1:升级Selenium到兼容Chrome 124的版本

将Selenium依赖版本升级到4.20.0及以上(该版本正式适配Chrome 124),修改pom.xml:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.20.0</version>
</dependency>

升级后,Selenium会自动匹配并下载对应版本的ChromeDriver,无需手动配置。

步骤2:改用独立的测试用户数据目录

不要复用系统默认的Chrome用户目录,创建一个专门用于测试的目录,比如:

options.addArguments("--user-data-dir=/Users/nitesh/Library/Application Support/Google/Chrome/TestProfile");

确保这个目录不存在或为空,避免和正常浏览器实例冲突。

步骤3:排查Multipass扩展兼容性

  • 先临时注释掉加载Multipass扩展的代码,运行测试脚本,看是否还会出现缓慢/失败的情况:
    // options.addExtensions(new File(System.getProperty("user.dir") + "/src/test/resources/Extension/MultiPass.crx"));
    
  • 如果去掉扩展后恢复正常,说明是扩展不兼容Chrome 124,需要更新Multipass扩展到最新版本,替换本地的crx文件后再测试。

步骤4:验证Chrome驱动匹配情况

如果升级Selenium后仍有问题,可以手动确认驱动版本:

  • 运行测试前,查看控制台日志中Selenium自动下载的ChromeDriver版本,确认是124.x.x.x(和Chrome版本一致)。

辅助排查点

  • 检查Mac系统资源:打开活动监视器,查看Chrome进程的CPU/内存占用,如果持续过高,可尝试降级Chrome到123版本(对应Selenium 4.19.1支持的版本)。
  • 关闭Chrome的后台同步、自动更新等功能,减少测试时的资源消耗。

内容的提问来源于stack exchange,提问作者Nitesh Srivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:21:16