Le sélénium Grille de ne pas exécuter Chrome sur un autre ordinateur
J'ai ce problème. Lorsque sur un autre ordinateur, je commence HUB et le NŒUD, puis exécutez mes tests où j'initialise Google Chrome comme ceci:
Selenium selenium = new DefaultSelenium("localhost", 4444, *googlechrome, "http://www.google.com");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--start-maximized"));
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
Tout est ok sur mon ordinateur - Chrome arrive et ne le script. Cependant, Si mon ami essaie de faire exactement la même chose, elle l'obtient cette erreur:
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_29'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:435)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:139)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:94)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:102)
at com.deutscheboerse.test.PerfTests.<init>(PerfTests.java:52)
at com.deutscheboerse.test.EUAStressTest.myTest(EUAStressTest.java:37)
at com.deutscheboerse.test.EUAStressTest.main(EUAStressTest.java:60)
Caused by: org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 4422; received: 3743
at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:178)
at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:197)
at org.apache.http.impl.io.ContentLengthInputStream.close(ContentLengthInputStream.java:105)
at org.apache.http.conn.BasicManagedEntity.streamClosed(BasicManagedEntity.java:152)
at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:237)
at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:186)
at org.apache.http.util.EntityUtils.consume(EntityUtils.java:67)
at org.openqa.selenium.remote.HttpCommandExecutor$EntityWithEncoding.<init> HttpCommandExecutor.java:399)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:287)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:415)
... 6 more
Jusqu'à présent seule différence que j'ai trouvé est que la sienne hub est à l'écoute sur http://10.10.190.134:5555
le mien est à l'écoute sur http://10.131.7.44:5555
mais à la fois peut accéder à la console sur la même adresse IP et le port. Je n'ai pas la moindre idée de quoi de mal. Tout est apprécié, merci
** EDIT **
Iried pour l'exécuter sur un autre ordinateur et j'ai eu la même erreur. Peu de débogage m'a montré ce message:
11:04:01.899 WARN - Exception: The path to the chromedriver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://code.google.com/p/chromedriver/downloads/list
De sorte que, avant la configuration du Chrome en Sélénium de la Grille, j'ai besoin de le faire:
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "chromedriver.exe");
J'ai essayé de le faire et toujours pas en mesure d'exécuter le Chrome... Toute aide est toujours voulu
EDID2
C'est comment j'ai exactement définir la propriété:
File file = new File("lib/chromedriver.exe");
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, file.getAbsolutePath());
Je suis en utilisant cette approche, car j'ai besoin de l'exécuter sur l'ordinateur et le fichier JAR peut avoir différents endroits.
BTW, l'avertissement est trouvé dans la fenêtre avec le Sélénium Grille dans le rôle de nœud. Je pense, si il y a un autre commutateur. Jusqu'à présent, je suis en cours d'exécution de ces commandes:
java -jar lib//selenium-server-standalone-2.20.0.jar -role hub
java -jar lib/selenium-server-standalone-2.20.0.jar -role node -hub http://localhost:4444/grid/register -maxSession 12
and then my JAR. The exception is in window with the NODE. Is there any switcher?
modifié un peu. Fondamentalement chemin d'accès complet n'aide pas
Aller à la page: /grille/console" >localhost:<port>/grid/console et voir si vous pouvez voir quoi que ce soit.
rien à y être trouvés. Étrange, que je n'avais pas à définir le bien sur mon ordinateur...
Trouvé la solution!
OriginalL'auteur Pavel Janicek | 2012-04-04
Vous devez vous connecter pour publier un commentaire.
Après une journée de chercher, j'ai une solution qui fonctionne. Tout est dans la façon dont vous démarrez le nœud. Alors d'abord, faire l'habitude:
Puis démarrez le nœud comme ceci:
Plus précisément: Vous avez besoin de lancer le NŒUD de paramètre
browser
et ajouter-D
paramètre spécifiant le chemin d'accès complet à la ChromeDriverMes énormes remerciements à Jean Naegle qui ont répondu à la même question, ici, sur la DONC en ce qui concerne Internet Explorer - voir ici
OriginalL'auteur Pavel Janicek
Que c'est drôle, mais webdriver ne peut pas résoudre les dns,
http://localhost:4444/
J'ai édité mon fichier host, décommenté la ligne:
127.0.0.1 localhost
Et C'est fait.
OriginalL'auteur Dimmduh