2016-04-21 5 views
2

Beim Starten einer Sitzung des Remote-Webtreibers für Microsoft Edge auf einer Windows 10-VM wird ein Fehler angezeigt. Wir haben ein Selen-Grid mit mehreren Knoten konfiguriert, die verschiedene OS/Browser-Kombinationen haben. Alle Knoten mit Ausnahme unseres neuen Windows 10-Knotens funktionieren wie erwartet. Wir haben eine Windows 10-VM mit dem Microsoft Edge-Browser version=21.10586.0.0 konfiguriert und die MicrosoftWebDriver auf der VM hinzugefügt. Der Weg zum Web-Treiber auf der VM wird mit der System-Eigenschaft -Selen hängt beim Starten einer neuen remoteWebDriver-Sitzung mit Microsoft Edge-Webbrowser unter Windows 10 VM

-Dwebdriver.edge.driver="C:\Selenium\MicrosoftWebDriver.exe" 

In meinem Selen Test, den ich instanziiert den Selen Web-Treiber, der auf die MicrosoftWebDriver auf der Windows 10-VM konfiguriert ist. Während der Initialisierung gesetzt ich die Möglichkeiten für den Remote-Treiber, und ich habe Ausgabe protokollieren, die festgelegt ist:

08:57:32.932 INFO - Executing: [new session: Capabilities [{platform=WINDOWS, javascriptEnabled=true, browserName=MicrosoftEdge, applicationName=Win10_EDGE, version=21.10586.0.0}]]) 
08:57:32.948 INFO - Creating a new session for Capabilities [{platform=WINDOWS, javascriptEnabled=true, browserName=MicrosoftEdge, applicationName=Win10_EDGE, version=21.10586.0.0}] 

Die Remote-Verbindung hergestellt ist, wird der Edge-Browser auf dem VM geöffnet und ist betriebsbereit. An diesem Punkt hängt, die Erstellung der Code den Remote-Treiber in der Selen-Code - Selen-Remote-Treiber-2.53.0.jar

es schließlich mal aus mit dem Fehler:

java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException 
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58' 
System info: host: 'xxxx', ip: 'xxx.xx.xxx.xxx', os.name: 'Windows 8', os.arch: 'x86', os.version: '6.2', java.version: '1.7.0_51' 
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:124) 
     at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:59) 
     at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:1) 
     at org.openqa.selenium.remote.server.rest.ResultConfig.handle(ResultConfig.java:111) 
     at org.openqa.selenium.remote.server.JsonHttpCommandHandler.handleRequest(JsonHttpCommandHandler.java:79) 
     at org.openqa.selenium.remote.server.DriverServlet.handleRequest(DriverServlet.java:204) 
     at org.openqa.selenium.remote.server.DriverServlet.doPost(DriverServlet.java:166) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
     at org.openqa.selenium.remote.server.DriverServlet.service(DriverServlet.java:132) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
     at org.openqa.jetty.jetty.servlet.ServletHolder.handle(ServletHolder.java:428) 
     at org.openqa.jetty.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:680) 
     at org.openqa.jetty.jetty.servlet.ServletHandler.handle(ServletHandler.java:571) 
     at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1526) 
     at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1479) 
     at org.openqa.jetty.http.HttpServer.service(HttpServer.java:920) 
     at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820) 
     at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986) 
     at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837) 
     at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243) 
     at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:358) 
     at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:537) 
Caused by: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException 
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58' 
System info: host: 'xxxx', ip: 'xxx.xx.xxx.xxx', os.name: 'Windows 8', os.arch: 'x86', os.version: '6.2', java.version: '1.7.0_51' 
Driver info: driver.version: unknown 
     at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor(DefaultDriverProvider.java:113) 
     at org.openqa.selenium.remote.server.DefaultDriverProvider.newInstance(DefaultDriverProvider.java:97) 
     at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance(DefaultDriverFactory.java:60) 
     at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:222) 
     at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:1) 
     at java.util.concurrent.FutureTask.run(Unknown Source) 
     at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:176) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
     at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
     at java.lang.reflect.Constructor.newInstance(Unknown Source) 
     at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor(DefaultDriverProvider.java:103) 
     ... 9 more 
Caused by: org.openqa.selenium.TimeoutException: Timeout (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 917.04 seconds 
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58' 
System info: host: 'xxxx', ip: 'xxx.xx.xxx.xxx', os.name: 'Windows 8', os.arch: 'x86', os.version: '6.2', java.version: '1.7.0_51' 
Driver info: org.openqa.selenium.edge.EdgeDriver 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
     at java.lang.reflect.Constructor.newInstance(Unknown Source) 
     at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 
     at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 
     at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 
     at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) 
     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) 
     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) 
     at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:152) 
     at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:120) 
     ... 14 more 
13:28:49.532 WARN - Exception: Timeout (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 917.04 seconds 

Ich verwende: selen-server-standalone-2.53.0.jar, Microsoft WebDriver Herbst 2015 Update von der Microsoft-Website

Ich bemerkte, dass die Systeminformationen oben Windows 8 auflistet - obwohl Windows 10 installiert ist.

Hat jemand anderes dieses Problem gesehen oder hat eine Idee was falsch ist?

+0

Haben Sie versucht, ein Skript lokal auf der VM auszuführen? Hast du es auch mit dem Edge-Treiber v14271 versucht? Es sieht so aus, als ob der Browser nicht auf den Treiber reagiert. Ich würde auch überprüfen, dass die Verbindung nicht von der Firewall blockiert wird. –

+0

Danke, ich werde beides versuchen. – acleve

+0

Ich habe versucht, ein Skript lokal auf der VM laufen und es hat funktioniert! Danke für den Hinweis. Bedeutet dies, dass es ein Problem mit dem Selenium RemoteWebDriver ist, wenn es sich nicht um ein Firewall-Problem handelt? – acleve

Antwort

0

Während meines erfolgreichen und schmerzhaften Kampfes, Edge als Teil eines Selen-Gitters zu etablieren, bekam ich sehr ähnliche Ausnahmen. Es gibt mindestens zwei mögliche Probleme hier:

  1. Ist Selen-Standalone-Server im Hintergrund gestartet (zum Beispiel mit dem Task-Scheduler) oder Vordergrund? (z. B. manuell oder als Autostartprogramm) Edge-Treiber muss im Vordergrund ausgeführt werden, damit sein Fenster tatsächlich auf dem Desktop angezeigt werden kann. Daher kann der Knoten beim Start nicht als Windows-Dienst oder vom Windows-Taskplaner gestartet werden. Die beste Möglichkeit, den Start des Knotens zu automatisieren, besteht darin, die automatische Anmeldung zu konfigurieren und ein Stapelskript hinzuzufügen, das den Knoten wie in my article beschrieben für die Startup-Programme des Benutzers startet.

  2. Sind andere Browser in demselben Knoten wie Edge aktiviert? Dies verursacht bekanntlich Probleme. Es wird empfohlen, 2 separate Knoten auf demselben Rechner (natürlich an verschiedenen Ports) zu starten: einen für Edge und einen für IE, FF und Chrome. Weitere Informationen finden Sie unter this answer.