Java + ChromeDriver + Docker:CreatePlatformSocket() 失败:协议不支持地址族 (97)

Sai*_*ita 6 java selenium-chromedriver docker

我有一个使用 selenium 和 ChromeDriver 的 Java 应用程序来测试一些应用程序,例如应用程序 A、B 和 C。

我的本地环境在视觉和无头模式(Chrome 版本 66.0.3359.139 64 位)下都运行良好,测试每个应用程序需要 5 秒。

在 jenkins docker 节点(Chrome 版本 71)中无头运行时,应用程序 A 和 C 记录:

在端口 15981 上启动 ChromeDriver 2.46.628388

仅允许本地连接。请保护ChromeDriver及相关测试框架使用的端口,防止恶意代码访问。

[严重]:CreatePlatformSocket() 失败:协议不支持地址族 (97)

org.openqa.selenium.remote.ProtocolHandshake createSession INFO:检测到的方言:OSS

但所有测试都运行良好。

另一方面,应用程序 B 记录:

在端口 15981 上启动 ChromeDriver 2.46.628388

仅允许本地连接。请保护ChromeDriver及相关测试框架使用的端口,防止恶意代码访问。

[严重]:CreatePlatformSocket() 失败:协议不支持地址族 (97)

[严重]:CreatePlatformSocket() 失败:协议不支持地址族 (97)

org.openqa.selenium.remote.ProtocolHandshake createSession INFO:检测到的方言:OSS

然后“挂起”大约 15 分钟,然后再继续。

这是我配置驱动程序的方式:

    private static WebDriver createChromeDriver() {
        System.setProperty("webdriver.chrome.driver", DRIVER_PATH);
        ChromeOptions options = new ChromeOptions();
        if (ENABLE_HEADLESS) {
            options.addArguments("--headless");
            options.addArguments("--no-sandbox");
            options.addArguments("--disable-web-security");
            options.addArguments("--no-first-run");
            options.addArguments("--no-check-default-driver");
            options.addArguments("--allow-running-insecure-content");
            options.addArguments("--disable-infobars");
            options.addArguments("--start-maximized");
            options.addArguments("--ignore-certificate-errors");
            options.addArguments("--disable-popup-blocking");
            options.addArguments("--disable-notifications");
            options.setExperimentalOption("prefs", singletonMap("profile.default_content_settings.geolocation", 2));
        }
        options.setExperimentalOption("useAutomationExtension", false);

        ChromeDriver chromeDriver = new ChromeDriver(options);
        chromeDriver.manage().window().maximize();
        return chromeDriver;
    }
Run Code Online (Sandbox Code Playgroud)

我尝试使用“--headless”,但我遇到了同样的问题。