Вызов край 18 версии драйвера от Java - PullRequest
0 голосов
/ 22 октября 2019

У меня есть различные тесты Selenium, запущенные в браузере Edge.

В версиях Edge до 18 вы можете загрузить соответствующую версию "MicrosoftWebDriver.exe" и вызвать драйвер из Java следующим образом:

System.setProperty( "webdriver.edge.driver", driversPath + "MicrosoftWebDriver.exe" );
WebDriver driver = new EdgeDriver();
driver.get( URL );

Но в Edge 18 я установил автономный драйвер Edge (поясняется в Selenium - Java: браузер автоматизации Microsoft Edge (Windows 10) ), но мой Java-код не работает с этим драйвером, я получаю сообщение об ошибке:

Driver info: driver.version: EdgeDriver
    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)
    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.edge.EdgeDriver.<init>(EdgeDriver.java:141)
    at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:96)
    at es.renr.gpress.comun.selenium.LoadConfigurationBase.getDriver(LoadConfigurationBase.java:112)
    at es.renr.gpress.comun.selenium.DBTestCaseRdvBase.setUp(DBTestCaseRdvBase.java:124)
    at junit.framework.TestCase.runBare(TestCase.java:139)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at junit.framework.TestSuite.runTest(TestSuite.java:252)
    at junit.framework.TestSuite.run(TestSuite.java:247)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:40151/status] to be available after 20001 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:188)
    ... 29 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)
    ... 30 more

Итак, в версиях Edge до 18 вы создаете экземпляр EdgeDriver, предварительно установив свойство "webdriver.edge.driver"с путем MicrosoftWebDriver.exe в вашей системе, но начиная с версии 18 в вашей системе нет файла MicrosoftWebDriver.exe, драйвер устанавливается в Windows без конкретного пути. Поэтому я не знаю, как создать экземпляр objet WebDriver.

Я видел, что MicrosoftWebDriver.exe установлен по пути c: \ windows32 \ system \ MicrosoftWebDriver.exe, поэтому я попытался использовать следующий код:

System.setProperty ("webdriver.edge.driver", "c: \ windows32 \ system \ MicrosoftWebDriver.exe); драйвер WebDriver = новый EdgeDriver (); driver.get (URL);

Но без успеха я получаю ту же ошибку.

Как я могу вызвать этот Edge Driver из Java?

...