У меня есть приложение Java, использующее selenium и ChromeDriver для тестирования некоторых приложений, например, приложений A, B и C.
Моя локальная среда работает нормально как в визуальном, так и в автономном режиме (Chrome версия 66.0.3359.139 64битов), и для тестирования каждого приложения требуется 5 секунд.
При запуске без заголовка в док-узле jenkins (версия Chrome 71) журналы приложений A и C:
Запуск ChromeDriver 2.46.628388 через порт 15981
Разрешены только локальные подключения.Защитите порты, используемые ChromeDriver и соответствующими тестовыми средами, для предотвращения доступа вредоносного кода.
[SEVERE]: сбой CreatePlatformSocket (): семейство адресов не поддерживается протоколом (97)
org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Обнаружен диалект: OSS
Но все тесты выполняются нормально.
Приложение B, с другой стороны, регистрирует:
Запуск ChromeDriver 2.46.628388 через порт 15981
Разрешены только локальные подключения.Защитите порты, используемые ChromeDriver и соответствующими тестовыми средами, для предотвращения доступа вредоносного кода.
[SEVERE]: сбой CreatePlatformSocket (): семейство адресов не поддерживается протоколом (97)
[SEVERE]: 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;
}
Я пытался просто с "--headless", но у меня была та же проблема.