WebDriverException: истекло время ожидания запуска сервера драйверов с Selenium ChromeDriver и Chromium через Java - PullRequest
0 голосов
/ 21 июня 2019

Я пытался войти на страницу через библиотеки selenium-java. Драйвер, который я использую - Chromium (версия Chrome с открытым исходным кодом). Эта реализация работает нормально в среде Windows, но когда я запускал эту реализацию через Jenkins (Linux box), драйвер не запускался. Я ожидаю, что при создании экземпляра ChromeDriver проблем не возникнет, и он должен начаться без проблем.

Вот детали среды Linux.

  • Браузер и драйвер: Chromium 73.0.3683.86 Fedora Project
  • Путь к драйверу в linux box : /usr/bin/chromium-browser.sh
  • Java-версия : 1.8.0_131
  • Используемая версия Selenium : 3.14.0 и также пробная версия 3.141.59
  • ОС : Linux

Я гарантировал и подтвердил, что файл имеет полные разрешения на выполнение от пользователя Jenkins.

код, который я пытаюсь

        String OS = System.getProperty("os.name", "generic").toLowerCase(Locale.ENGLISH);
        ChromeOptions options = new ChromeOptions();
        if (OS.indexOf("win") >= 0) {
            filePath = new File(properties.getChromeDriverPath()).getAbsolutePath();
            System.setProperty("webdriver.chrome.driver", filePath);
        } else if (OS.indexOf("nux") >= 0) {
            File chromiumDriver = new File("/usr/bin/chromium-browser");
            System.setProperty("webdriver.chrome.driver", chromiumDriver.getAbsolutePath());
        }
        options.setHeadless(true);
        WebDriver chromeDriver = new ChromeDriver(options);

Журналы ошибок.

com.src.test.services.integration.test.AuthServicesTest > testAuthentication STANDARD_ERROR
    org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
    Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
    System info: host: 'xyzJenkinsHost.test.corp', ip: '172.20.3.2', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-862.14.4.el7.x86_64', java.version: '1.8.0_131'
    Driver info: driver.version: ChromeDriver
        at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:193)
        at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:179)
        at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)

com.src.test.services.integration.test.AuthServicesTest > testAuthentication STANDARD_ERROR
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
        at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)

Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:19154/status] to be available after 20002 ms
        at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)
        at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:188)
        ... 21 more
Caused by: java.util.concurrent.TimeoutException
        at java.util.concurrent.FutureTask.get(FutureTask.java:205)
        at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:156)
        at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
        ... 22 more

Ответы [ 2 ]

0 голосов
/ 25 июня 2019
File chromiumDriver = new File("/usr/bin/chromium-browser");
System.setProperty("webdriver.chrome.driver", chromiumDriver.getAbsolutePath());

Вы устанавливаете системное свойство webdriver.chrome.driver в положение chromium-browser.Вместо этого вы должны установить свойство, указывающее, где находится исполняемый файл chromdriver (который вы должны были где-то загрузить).

0 голосов
/ 21 июня 2019

Это сообщение об ошибке ...

org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
System info: host: 'xyzJenkinsHost.test.corp', ip: '172.20.3.2', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-862.14.4.el7.x86_64', java.version: '1.8.0_131'
Driver info: driver.version: ChromeDriver

... означает, что ChromeDriver не смог инициировать / создать новый сеанс веб-просмотра , т.е. браузер Chrome сеанс.

Ваша главная проблема - несовместимость между версиями двоичных файлов, которые вы используете, следующим образом:

  • Ваша версия JDK - это 1.8.0_131 , что довольно древний .

Таким образом, существует явное несоответствие между JDK v8u6131 и Selenium Client v3.141.59 .


Решение

  • Обновление JDK до последних уровней JDK 8u212 .
  • Обновление Селен до текущих уровней Версия 3.141.59 .
  • Обновление ChromeDriver до ChromeDriver v76.0 уровень.
  • Обновление Chrome до Chrome v76.0 уровень.
...