example - selenium tutorial español pdf
Selenium Grid no ejecuta Chrome en otra computadora (2)
Tengo este problema Cuando estoy en una computadora diferente, comienzo HUB y NODE y luego ejecuto mis pruebas donde inicializo Google Chrome de esta manera:
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);
Todo funciona bien en mi computadora: Chrome aparece y hace el guión. Sin embargo, si mi amigo intenta hacer exactamente lo mismo, ella obtiene este error:
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
Hasta el momento, solo diferencia lo que encontré es que su hub está escuchando en http://10.10.190.134:5555
mío está escuchando en http://10.131.7.44:5555
pero ambos pueden acceder a la consola en la misma IP y puerto. No tengo ni idea de lo que está mal. Todo es apreciado, gracias
** EDIT **
Intenté ejecutarlo en otra computadora y tuve el mismo error. Una pequeña depuración me mostró este mensaje:
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
Entonces, antes de configurar Chrome en Selenium Grid, necesito hacer esto:
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "chromedriver.exe");
Intenté hacerlo y todavía no puedo ejecutar Chrome ... Todavía se necesita ayuda
EDID2 Así es como configuré exactamente la propiedad:
File file = new File("lib/chromedriver.exe");
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, file.getAbsolutePath());
Estoy usando este enfoque porque necesito ejecutarlo en más computadora y el archivo JAR puede tener diferentes ubicaciones.
Por cierto, la advertencia se encuentra en la ventana con Selenium Grid en el rol de nodo. Estoy pensando, si hay otro conmutador. Hasta ahora estoy ejecutando estos comandos:
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?
Es curioso, pero webdriver no puede resolver dns, http://localhost:4444/
mi archivo de host, línea sin comentario:
127.0.0.1 localhost
Y está hecho.
Después de un día de búsqueda, tengo una solución de trabajo. Todo está en cómo comienzas el nodo. Entonces, primero, haz lo de siempre:
java -jar lib/selenium-server-standalone-2.20.0.jar -role hub
A continuación, inicie el nodo de esta manera:
java -jar lib/selenium-server-standalone-2.20.0.jar -role webdriver -hub http://localhost:4444/grid/register -browser browserName="chrome",version=ANY,platform=WINDOWS,maxInstances=5 -Dwebdriver.chrome.driver=lib/chromedriver.exe
Más específicamente: debe iniciar el NODO con el browser
parámetros y agregar el parámetro -D
especificando la ruta completa al ChromeDriver
Mi más sincero agradecimiento a John Naegle, quien respondió una pregunta similar aquí en SO con respecto a Internet Explorer - vea aquí