2012-01-12 21 views
9

Stavo cercando di installare il webdriver remoto per eseguire i miei test sul computer remoto, poiché la mia applicazione viene distribuita sul mio localhost. Usando Selenium RC ho usato l'indirizzo host per eseguire quei test e ha funzionato bene; ma ho difficoltà a configurare la classe base usando il webdriver remoto. Ho provato il seguente codice ma non ha funzionato. A proposito, ho avuto test sul selenio che sto migrando al web-player remoto. Ho provato il webdriver che funziona bene ma non ho potuto installare il webdriver remoto per l'esecuzione remota. Qualsiasi aiuto sarà apprezzato.Impostazione di Webdriver remoto per eseguire test in un computer remoto utilizzando Java

public static String base_url = "http://localhost:8084";  
Proxy proxy = new Proxy();  
proxy.setProxyAutoconfigUrl(base_url); 
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); 
capabilities.setCapability(CapabilityType.PROXY, proxy); 
RemoteWebDriver driver = new RemoteWebDriver(capabilities); 
selenium = new WebDriverBackedSelenium(driver, base_url); 

griglia Esempio 2 codice che funziona per firefox ma non funziona su IE9

String hubURL = "http://myip:4444/wd/hub"; 
DesiredCapabilities capability = DesiredCapabilities.internetExplorer(); 
//capability.setBrowserName("internet explorer"); 
//capability.setPlatform("WINDOWS"); 
//capability.setVersion("9.0.4"); 
WebDriver driver = new RemoteWebDriver(new URL(hubURL), capability); 
driver.get("http://www.google.com"); 
WebElement element = driver.findElement(By.name("q")); 
element.sendKeys("Cheese!"); 
element.submit(); 
driver.quit(); 

errore Ricevevo quando è IE9 se ho specificato IE dal modo comando dal nodo:

Exception in thread "main" org.openqa.selenium.WebDriverException: Error forwarding the new session cannot find : {platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=} 
Command duration or timeout: 110 milliseconds 
Build info: version: '2.16.1', revision: '15405', time: '2012-01-05 12:23:11' 
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.38-13-generic', java.version: '1.6.0_26' 
Driver info: driver.version: RemoteWebDriver 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:147) 
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:113) 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:435) 
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:135) 
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:94) 
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:102) 
at com.main.SelTest.main(SelTest.java:25) 
Caused by: org.openqa.grid.common.exception.GridException: Error forwarding the new session cannot find : {platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=} 
at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:151) 
at org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:81) 
at org.openqa.grid.web.servlet.DriverServlet.doPost(DriverServlet.java:67) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
at org.openqa.jetty.jetty.servlet.ServletHolder.handle(ServletHolder.java:428) 
at org.openqa.jetty.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473) 
at org.openqa.jetty.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) 
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1530) 
at org.openqa.jetty.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633) 
at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1482) 
at org.openqa.jetty.http.HttpServer.service(HttpServer.java:909) 
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:357) 
at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:534) 
+0

Si prega di definire _ "non lavoro" _ ... – Thomas

+0

volevo dire per dirlo non è in esecuzione. come non ho mai detto chi sarà il mio computer host. –

risposta

6

È necessario installare un Selenium Server (un hub) e registrare il WebDriver remoto su di esso. Quindi, il vostro cliente parlerà con l'Hub che troverà un WebDriver corrispondenza per eseguire il test

Si può avere uno sguardo there per ulteriori informazioni

+0

Ho provato a utilizzare le istruzioni descritte nella pagina della griglia 2. tutto funziona bene quando è Firefox ma non funziona con IE9. Si prega di controllare sopra per i dettagli –

+0

'Informazioni di sistema: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.38-13-generic', java.version: '1.6.0_26' Do stai davvero provando a lanciare IE9 su una Linux Box? – Grooveek

+0

Nop, I hub è una finestra di Ubuntu in cui ho distribuito il mio progetto e ho provato a eseguire test su Windows 7 vm con IE9 –

0

Di default l'InternetExplorerDriver in ascolto sulla porta "5555". Cambia il tuo huburl per abbinarlo. puoi guardare sulla finestra della finestra di cmd per confermare.

+0

Il driver IE non consente connessioni remote direttamente. È necessario connettersi al server selenio-standalone, che si collegherà quindi al driver IE. – WoodenKitty

2

Questo problema è venuto a causa del fatto che ... stavo eseguendo server con selenio-server-standalone-2.32.0 e client registrato con selenium-server-standalone-2.37.0 .. Quando ho fatto entrambi i selenio -server-standalone-2.32.0 e corse poi le cose ha funzionato bene

0

Questo è come mi sono liberato l'errore:

WebDriverException: Error forwarding the new session cannot find : {platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=11}

Nella tua nodeconfig.json, la versione deve essere una stringa, non un intero.

Quindi invece di utilizzare "version": 11 utilizzare "version": "11" (notare le doppie virgolette).

Un esempio completo di un file nodecondig.json di lavoro per un RemoteWebDriver:

{ 
    "capabilities": 
    [ 
    { 
     "platform": "WIN8_1", 
     "browserName": "internet explorer", 
     "maxInstances": 1, 
     "seleniumProtocol": "WebDriver" 
     "version": "11" 
    } 
    ,{ 
     "platform": "WIN7", 
     "browserName": "chrome", 
     "maxInstances": 4, 
     "seleniumProtocol": "WebDriver" 
     "version": "40" 
    } 
    ,{ 
     "platform": "LINUX", 
     "browserName": "firefox", 
     "maxInstances": 4, 
     "seleniumProtocol": "WebDriver" 
     "version": "33" 
    } 
    ], 
    "configuration": 
    { 
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
    "maxSession": 3, 
    "port": 5555, 
    "host": ip, 
    "register": true, 
    "registerCycle": 5000, 
    "hubPort": 4444, 
    "hubHost": {your-ip-address} 
    } 
} 
0
  • In primo luogo è necessario creare HubNode (Server) e avviare il HubNode (Server) da Command Line/richiederà l'utilizzo di Java : -jar selenium-server-standalone-2.44.0.jar -role hub
  • Quindi associare il nodo/client a questo hub utilizzando Hub macchine Indirizzo IP o Nome con qualsiasi numero di porta> 1024. Per il nodo della macchina, ad esempio: Java -jar selenium-server-standalone-2.44.0.jar -role webdriver -hub http://HubmachineIPAddress:4444/grid/register -port 5566

più Una cosa è che ogni volta che usiamo Internet Explore o Google Chrome abbiamo bisogno di impostare: System.setProperty("webdriver.ie.driver",path);

Problemi correlati