У меня Ubuntu 18.04
, у которого chrome с версией 80.0.3987.87
, и я пытаюсь запустить на нем тесты Selenium с различными следующими chromedriver
версиями
- 79.0.3945.36
- 80.0.3987.16
- 80.0.3987.106
, но это приводит к ошибке -
[testng] WARNING: WebDriverException thrown by findElement(By.id: j_username)
[testng] org.openqa.selenium.WebDriverException: chrome not reachable
[testng] (Session info: chrome=80.0.3987.87)
[testng] (Driver info: chromedriver=79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}),platform=Linux 4.15.0-74-generic x86_64) (WARNING: The server did not provide any stacktrace information)
[testng] Command duration or timeout: 0 milliseconds
[testng] Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'
[testng] Driver info: org.openqa.selenium.chrome.ChromeDriver
[testng] Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 79.0.3945.36 (3582db32b3389..., userDataDir: /tmp/.com.google.Chrome.pFnA2S}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:41391}, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 80.0.3987.87, webStorageEnabled: true}
[testng] Session ID: 215e1bff4f63437dbf8a0b8f0570c41b
[testng] *** Element info: {Using=id, value=j_username}
[testng] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[testng] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[testng] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[testng] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[testng] at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
[testng] at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
[testng] at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
[testng] at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
[testng] at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
[testng] at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
[testng] at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
[testng] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
[testng] at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:349)
[testng] at org.openqa.selenium.remote.RemoteWebDriver.findElementsById(RemoteWebDriver.java:372)
[testng] at org.openqa.selenium.By$ById.findElements(By.java:180)
[testng] at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:310)
[testng] at org.openqa.selenium.support.ui.ExpectedConditions.findElement(ExpectedConditions.java:895)
[testng] at org.openqa.selenium.support.ui.ExpectedConditions.access$000(ExpectedConditions.java:44)
[testng] at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:206)
[testng] at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:202)
[testng] at org.openqa.selenium.support.ui.ExpectedConditions$22.apply(ExpectedConditions.java:657)
[testng] at org.openqa.selenium.support.ui.ExpectedConditions$22.apply(ExpectedConditions.java:654)
[testng] at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:260)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[testng] at java.lang.reflect.Method.invoke(Method.java:498)
[testng] at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
[testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
[testng] at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
[testng] at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:71)
[testng] at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:14)
[testng] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[testng] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[testng] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[testng] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[testng] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[testng] at java.lang.Thread.run(Thread.java:745)
Если я пытаюсь запустить это с последней версией chromedriver ie 81.0.4044.20
выдает следующую ожидаемую ошибку -
org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 81
Но, что удивительно, это не работает с версией chromedriver 80. Я не мог найти соответствующую проблему на github Selenium. Пожалуйста, объясните мне это.
** Дополнительная информация: ** Воспроизводится только тогда, когда мы запускаем тесты через конвейер Jenkins вместе с Xvfb. Если мы запустим такой же тест с машины, он пройдет успешно.