2012-10-11 15 views
9

Ho il selenium-server-standalone.jar in esecuzione sul mio computer locale e i test che voglio eseguire compilati sulla mia macchina remota, ma non ho idea di come faccio a connettere i test alla macchina che eseguirà il browser. Qualsiasi aiuto apprezzato.Selenium Webdriver configurazione remota

Aggiornamento: sulla mia macchina locale (quello che sarà in esecuzione il browser) mi sono imbattuto

java -jar selenium-server-standalone-2.25.0.jar -mode hub 

sulla mia macchina a distanza (che io eseguire i test a partire da) mi sono imbattuto

java -jar selenium-server-standalone-2.25.0.jar -role webDriver -hub http://**My ip*:4444 

mio codice contiene le seguenti:

@Before 
    public void setUp() throws Exception { 
      DesiredCapabilities capability = DesiredCapabilities.firefox(); 
      driver = new RemoteWebDriver(new URL("http://**My ip**:4444/wd/hub"), 
      capability); 
      baseUrl = "http://phy05:8080"; 
      driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
      driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
      driver.manage().window().setSize(new Dimension(1920, 1080)); 

sto usando Linux e la mia t ests sono scritti in Java

+0

In quale lingua sono scritti i test di selenio? –

+0

I miei test sono scritti in java – confusified

+1

Non raccomanderei di cambiare l'implicitWait. Lasciarlo al valore predefinito di 0 ti darà un comportamento più tipico. La maggior parte delle persone implementa un FluentWait come WebDriverWait per darti tempi di attesa variabili più lunghi. Evitare di cambiarlo in "20" secondi. – djangofan

risposta

7

bene. Non è un problema. Mi piacerebbe condividere come ho risolto questo problema. Ho ottenuto VM (macchina virtuale) con jdk installato e server di selenio in esecuzione su VM. VM ha IP: 192.168.4.52 Mi sono collegato tramite (connessione desktop remoto RDC). Installato il browser necessario su di esso (firefox 15). Apri il browser. Disabilitato tutti gli aggiornamenti e altri pop up.

Ho un pacchetto di prove di selenio sulla mia macchina locale. E li eseguo sulla mia VM. configurazione Selenio segue:

import com.google.common.base.Function; 
import com.thoughtworks.selenium.SeleneseTestBase; 
import junit.framework.Assert; 
import org.junit.AfterClass; 
import org.junit.Before; 
import org.junit.BeforeClass; 
import org.openqa.selenium.*; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.openqa.selenium.support.ui.FluentWait; 
import org.openqa.selenium.support.ui.Wait; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; 
import org.springframework.core.io.support.PropertiesLoaderUtils; 

import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.NoSuchElementException; 
import java.util.Properties; 
import java.util.concurrent.TimeUnit; 


public class BaseSeleniumTest extends SeleneseTestBase { 
    static WebDriver driver; 


    @Value("login.base.url") 
    private String loginBaseUrl; 

    @BeforeClass 
    public static void firefoxSetUp() throws MalformedURLException { 

//  DesiredCapabilities capability = DesiredCapabilities.firefox(); 
     DesiredCapabilities capability = DesiredCapabilities.internetExplorer(); 

     driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); 


//  driver = new FirefoxDriver(); //for local check 

     driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
     driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
     driver.manage().window().setSize(new Dimension(1920, 1080)); 
    } 
    @Before 
    public void openFiretox() throws IOException { 



     driver.get(propertyKeysLoader("login.base.url")); 


    } 


    @AfterClass 
    public static void closeFirefox(){ 
     driver.quit(); 
    } 

..... 

questo pezzo di codice verrà eseguito tutti i test selenio sulla macchina a distanza. nella stringa driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); è sufficiente menzionare l'IP della macchina e questo dovrebbe funzionare.

Spero che questo ti aiuti.

+0

Quindi il server seleniuim viene eseguito sulla macchina con il browser o con i test? I miei test vengono eseguiti dalla riga di comando su un computer in cui mi ssh e il mio browser è sul mio computer locale – confusified

+1

nel mio approccio (sul progetto corrente) il server di selenio eseguito sulla VM (macchina remota) e il browser è su VM (remoto macchina) pure. Il set di test è sulla mia macchina locale, ma ho intenzione di inserirlo nel repository, aggiungere task a Hudson-jenkins per prelevarli dal repository ed eseguire da remoto. Cordiali saluti –

+0

È possibile farlo utilizzando la finestra mobile del browser Chrome. Fare riferimento a http://underthehood.meltwater.com/blog/2016/11/09/using-docker-with-selenium-server-to-run-your-browser-tests/ e https://github.com/SeleniumHQ/finestra mobile di selenio – vikramvi

Problemi correlati