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

Mac系统下Chrome无头模式中Selenium自动化测试框架无法正常运行的问题求助

Mac系统下Chrome无头模式中Selenium自动化测试框架无法正常运行的问题求助

我用 Selenium + Maven + Java 搭建了一套自动化测试框架,用来测试公司的门户系统。最近碰到了一个非常头疼的问题:只有在 Mac 系统的 Chrome 无头模式下执行测试时会失败,Linux 和 Windows 环境的无头模式都能正常跑通,而且所有系统的非无头模式测试全过,这就很奇怪了。

问题主要集中在下拉选单操作和数据加载/可见性上——哪怕我加了各种等待逻辑,还有waitForElementVisible的判断,还是会出问题。最常见的报错是元素点击被拦截,具体错误信息如下:

java.lang.AssertionError: Element not clickable or not visible org.openqa.selenium.ElementClickInterceptedException: element click intercepted: Element ... is not clickable at point (458, 380). Other element would receive the click:

我的 ChromeOptions 配置如下:

ChromeOptions options = new ChromeOptions();
            options.setExperimentalOption("prefs", chromePrefs);
            options.addArguments("--start-maximized");
            options.addArguments("download.default_directory=" + downloadDirPath);
            options.addArguments("--test-type");
            options.addArguments("--ignore-certificate-errors");
            options.addArguments("--disable-extensions");
            options.addArguments("--disable-infobars");
            options.addArguments("--remote-allow-origins=*");
            options.addArguments("--disable-popup-blocking");
            options.addArguments("--enable-WebGL");
            options.addArguments("--ignore-gpu-blocklist");
            options.addArguments("--ignore-gpu-blacklist");
            options.addArguments("--headless=new");
            options.addArguments("--no-sandbox");
            options.addArguments("--disable-features=EnableEphemeralApps"); // Added argument
            options.addArguments("--disable-dev-shm-usage");
            options.addArguments("--disable-software-rasterizer");
            options.addArguments("--use-webgl=desktop");
            options.addArguments("--disable-search-engine-choice-screen");
            options.addArguments("--window-size=1920,1080");
            options.addArguments("--allow-running-insecure-content");
            options.addArguments("--disable-renderer-accessibility");
            driver = new ChromeDriver(options);
            driver.get(url);

目前使用的环境版本:

  • Chrome 版本:133.0.6943.127
  • Selenium 版本:Maven 最新的 4.28.1

我试过了 ChatGPT 给出的所有修复方案,但都没解决问题。这套测试本来是要在 Jenkins 的 Linux 服务器上夜间以无头模式执行的,现在因为 Mac 本地的问题(虽然 Jenkins 上能跑,但本地调试必须解决),我暂时停了夜间任务,实在是急需找到解决办法!

UPDATE: 经过进一步排查,我发现无头模式的问题仅出现在 Mac OS 上。Linux(Jenkins 日志能看到预期的System.out.print输出)和 Windows(IDEA 中跑无头模式)都正常,Mac 系统的非无头模式测试也全部通过。


备注:内容来源于stack exchange,提问作者MarkMck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 10:48:03