Chrome headless 不适用于特定配置文件,它正在选择随机默认配置文件

Chrome headless is not working with specific profile, it is picking random default profile

我的 运行 我的 selenium 测试在无头模式下有一些特定的配置文件(带有扩展)有问题。 没有 headless 时,脚本是工作文件(具有特定的配置文件),但是在 headless 模式下,它正在选择默认配置文件,这导致脚本失败。

尝试了一些方法来解决这个问题,但没有任何效果。

  1. chromeOptions.setAcceptInsecureCerts(真); chromeOptions.setCapability(CapabilityType.ACCEPT_SSL_CERTS, 真); chromeOptions.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, 真);

  2. chromeOptions.addArguments("--remote-debugging-port=23456"); - 这导致此端口出错。

    用于在无头模式下启动 chrome 浏览器的代码设置。

    chromeOptions.setExperimentalOption("excludeSwitches", 
    Arrays.asList("disable-sync", "enable-logging"));
    chromeOptions.addArguments("--enable-sync");
    chromeOptions.addArguments("--disable-logging");
    chromeOptions.addArguments("--no-sandbox");
    chromeOptions.addArguments("--disable-dev-shm-usage");
    
    chromeOptions.addArguments("--headless");
    chromeOptions.addArguments("--disable-gpu");
    chromeOptions.addArguments("--window-size=1280,800");
    chromeOptions.addArguments("--allow-insecure-localhost");
    chromeOptions.addArguments("--remote-debugging-port=45447");
    
    chromeOptions.setAcceptInsecureCerts(true);
    chromeOptions.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    chromeOptions.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);
    

headless 运行 不支持添加扩展。 因此,使用 "Xvfb" 虚拟帧缓冲区来模拟 chrome UI。 启动浏览器实例时删除“--headless”。