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

标签 java selenium-webdriver google-chrome-headless chrome-profile

我在使用某些特定配置文件(带扩展名)的 headless 模式下运行 Selenium 测试时遇到问题。 如果没有 headless 模式,脚本是工作文件(具有特定配置文件),但是使用 headless 模式,它会选择默认配置文件,从而导致脚本失败。

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

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

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

    在 headless 模式下启动 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”。

关于java - Chrome headless 不适用于特定配置文件,它正在选择随机默认配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57553406/

相关文章:

java - 如何在 Android 中读取文本文件?

java - 实现大型状态机的最佳方式?

python - 在 Selenium chrome 浏览器中假装焦点

angularjs - session 未创建错误: Unable to create new service: ChromeDriverService

node.js - 覆盖 Date 构造函数执行脚本

python - 通过 Google Chrome 以 headless 模式下载文件

java - 使用字符串内容重复方法

java - java 中的 swt 中未打开且菜单未显示

python - 无法使用 headless chrome 定位网页上的元素

go - 如何将本地HTML加载到 headless Chrome