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

Mac系统下Selenium WebDriver启动浏览器无法自动显示的解决咨询

我之前在Mac上用Selenium时也踩过这个坑——浏览器后台跑操作但不弹出窗口,得手动点才能看执行过程,大概率是你不小心启用了无头模式,或者启动参数里默认加了隐藏窗口的配置。下面分Chrome和Firefox给你具体的解决办法:

Chrome浏览器的解决方法

核心就是移除所有和无头模式相关的启动参数,同时可以加一些确保窗口正常显示的配置:

  • 检查你的代码里有没有ChromeOptions.addArguments("--headless")或者--headless=new(Selenium 4.x+的新无头模式),把这些参数删掉
  • 可选添加--start-maximized参数,让浏览器启动时直接最大化,避免窗口最小化在 dock 里被忽略
  • 如果是M系列芯片的Mac,确保你用的ChromeDriver是arm64架构的(和Chrome浏览器版本匹配)

修正后的Chrome示例代码:

package trial;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class BrowserDemo {
    public static void main(String[] args) {
        ChromeOptions options = new ChromeOptions();
        // 移除无头模式参数(如果之前加了的话)
        // options.addArguments("--headless=new"); // 这行必须删掉!
        options.addArguments("--start-maximized"); // 让窗口最大化显示
        options.addArguments("--disable-extensions"); // 禁用扩展避免干扰

        WebDriver driver = new ChromeDriver(options);
        driver.get("https://www.google.com");
        // 后续执行你的操作...
    }
}
Firefox浏览器的解决方法

和Chrome类似,重点是移除无头模式的配置:

  • 检查代码里有没有FirefoxOptions.addArguments("--headless"),或者旧版本的options.setHeadless(true),把这些配置删掉
  • 同样可以添加--start-maximized参数确保窗口正常显示
  • 确认geckodriver的版本和Firefox浏览器版本匹配,且对应M系列芯片的arm64架构(如果是M芯片Mac)

修正后的Firefox示例代码:

package trial;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;

public class BrowserDemo {
    public static void main(String[] args) {
        FirefoxOptions options = new FirefoxOptions();
        // 移除无头模式配置(如果之前加了的话)
        // options.addArguments("--headless"); // 这行必须删掉!
        // options.setHeadless(true); // 旧版本的无头配置也要删掉

        WebDriver driver = new FirefoxDriver(options);
        driver.get("https://www.google.com");
        // 后续执行你的操作...
    }
}
额外排查点

如果上面的方法还是不行,可以检查:

  • Mac系统的「安全性与隐私」设置,确认是否允许Chrome/Firefox被自动化控制(如果弹出过授权提示,记得允许)
  • 有没有用测试框架(比如TestNG、JUnit)的全局配置文件,里面可能默认开启了无头模式,需要修改全局配置

内容的提问来源于stack exchange,提问作者Rufus Benny

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:25:34