Edge webdriver не переходит на страницу с удаленным драйвером (C #)

Я пытаюсь использовать Edge Driver в первый раз, но мне не удается перейти по URL-адресу при использовании RemoteWebDriver. Браузер открывается, но остается на «Пустой странице», вызывая следующую ошибку в узле сетки .......

17:24:05.348 INFO - Executing: [new session: Capabilities [{acceptSslCerts=true, browserName=MicrosoftEdge, javascriptEnabled=true, ignoreProtectedModeSettings=true, version=, platform=WINDOWS}]])
17:24:05.372 INFO - Creating a new session for Capabilities [{acceptSslCerts=true, browserName=MicrosoftEdge, javascriptEnabled=true, ignoreProtectedModeSettings=true, version=, platform=WINDOWS}]
[17:24:05.453] - Listening on http://localhost:24558/
17:24:06.020 WARN - Exception thrown
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'SAL-36', ip: '192.168.0.12', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
Driver info: driver.version: unknown
        at java.util.concurrent.FutureTask.report(Unknown Source)
        at java.util.concurrent.FutureTask.get(Unknown Source)
        at org.openqa.selenium.remote.server.DefaultSession.execute(DefaultSession.java:183)
        at org.openqa.selenium.remote.server.DefaultSession.<init>(DefaultSession.java:119)
        at org.openqa.selenium.remote.server.DefaultSession.createSession(DefaultSession.java:95)
        at org.openqa.selenium.remote.server.DefaultDriverSessions.newSession(DefaultDriverSessions.java:131)
        at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:59)
        at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:36)
        at org.openqa.selenium.remote.server.rest.ResultConfig.handle(ResultConfig.java:111)
        at org.openqa.selenium.remote.server.JsonHttpCommandHandler.handleRequest(JsonHttpCommandHandler.java:190)
        at org.openqa.selenium.remote.server.DriverServlet.handleRequest(DriverServlet.java:222)
        at org.openqa.selenium.remote.server.DriverServlet.doPost(DriverServlet.java:184)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at org.openqa.selenium.remote.server.DriverServlet.service(DriverServlet.java:150)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:841)
        at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:543)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
        at org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle(ContextHandler.java:1228)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
        at org.seleniumhq.jetty9.servlet.ServletHandler.doScope(ServletHandler.java:481)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
        at org.seleniumhq.jetty9.server.handler.ContextHandler.doScope(ContextHandler.java:1130)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.seleniumhq.jetty9.server.Server.handle(Server.java:564)
        at org.seleniumhq.jetty9.server.HttpChannel.handle(HttpChannel.java:320)
        at org.seleniumhq.jetty9.server.HttpConnection.onFillable(HttpConnection.java:251)
        at org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
        at org.seleniumhq.jetty9.io.FillInterest.fillable(FillInterest.java:112)
        at org.seleniumhq.jetty9.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
        at org.seleniumhq.jetty9.util.thread.Invocable.invokePreferred(Invocable.java:122)
        at org.seleniumhq.jetty9.util.thread.strategy.ExecutingExecutionStrategy.invoke(ExecutingExecutionStrategy.java:58)
        at org.seleniumhq.jetty9.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:201)
        at org.seleniumhq.jetty9.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:133)
        at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
        at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'

Он отлично работает при использовании обычного EdgeDriver вместо RemoteWebDriver.

Это мой файл узла ...

java -jar "C:\Selenium\Grid\selenium-server-standalone-3.4.0.jar" -role node -hub http://localhost:4444/grid/register -browser browserName=firefox,maxInstances=5 -browser browserName=chrome,platform=WIN10,maxInstances=5 -browser browserName="internet explorer",platform=WIN10,maxInstances=5 -browser browserName="MicrosoftEdge",platform=WINDOWS,maxInstances=1 -port 5555 

У меня все мои веб-драйверы находятся в одном каталоге на моем компьютере - C:\Selenium\Webdrivers, и у меня есть переменная среды в папке

Я использую.....

  • пакет selenium 3.0.1 nuget (RemoteWebDriver не работает в 3.4.0)
  • Версия Edge Driver 15063
  • Версия Edge 40.15063.0.0
  • Версия ОС 15063.413

Все остальные WebDrivers в настоящее время работают в селеновой сетке.

Если кто может помочь, я буду бесконечно благодарен


person Konzy262    schedule 27.06.2017    source источник


Ответы (1)


Как объясняется в этом ответе, наличие Edge в одном узле с другими браузерами, как известно, вызывает такие проблемы. Обходной путь - запустить 2 отдельных узла на одном компьютере: один только для Edge, а второй для IE, FF и Chrome.

person morgwai    schedule 10.08.2017
comment
Спасибо. Мне удалось сделать еще один шаг, однако драйвер слишком нестабилен, чтобы его можно было использовать в продакшене. Даже с ребром на отдельных узлах сетки тесты не могут выполняться параллельно, возвращая «Невозможно проанализировать удаленный ответ» при попытке загрузить второй сеанс. Щелчки по видимым и интерактивным элементам не всегда работают, возвращая «Элемент скрыт» (я должен использовать javascript для всех моих щелчков), а загрузка файлов с помощью входных посылок завершается ошибкой с «Элемент не фокусируется». В Chrome и Firefox все нормально. Если у вас есть какие-либо успехи в решении каких-либо / всех этих проблем, дайте мне знать. - person Konzy262; 11.08.2017
comment
как объяснено, здесь Edge-драйвер может иметь только 1 сеанс за раз: попытаться запустить более 1 Ожидается, что параллельные краевые тесты не пройдут. Если вы ограничите maxInstances для edge до 1 (как в примере из ссылки в моем ответе) и запустите его на выделенном узле, тогда он будет довольно стабильным. - person morgwai; 11.08.2017