2012-10-11 41 views
9

Tengo selenium-server-standalone.jar ejecutándose en mi máquina local, y las pruebas que deseo ejecutar compiladas en mi máquina remota, pero no tengo idea de cómo hago que las pruebas se conecten a la máquina eso ejecutará el navegador. Cualquier ayuda apreciada.Selenium Webdriver configuración remota

Actualización: en mi máquina local (la que va a correr el navegador) me encontré

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

en mi máquina remota (que voy a ejecutar las pruebas de) me encontré

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

mi código contiene lo siguiente:

@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)); 

estoy usando Linux y mi t ests están escritos en Java

+0

¿En qué idioma están escritos sus exámenes de selenio? –

+0

Mis pruebas están escritas en java – confusified

+1

No recomendaría cambiar implicitWait. Dejarlo en el valor predeterminado de 0 le dará un comportamiento más típico. La mayoría de las personas implementan un FluentWait, como WebDriverWait, para ofrecer tiempos de espera más largos. Evite cambiarlo a '20' segundos. – djangofan

Respuesta

7

bien. Eso no es un problema. Me gustaría compartir cómo resolví este problema. Obtuve VM (máquina virtual) con jdk instalado y servidor de selenio ejecutándose en VM. VM tiene IP: 192.168.4.52 Me conecté a través de (conexión de escritorio remota RDC). Se instaló el navegador necesario en él (Firefox 15). Navegador abierto. Desactivado todas las actualizaciones y otras ventanas emergentes.

Tengo el paquete de pruebas de selenio en mi máquina local. Y los ejecuto en mi VM. configuración selenio es el siguiente:

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(); 
    } 

..... 

esta pieza de código se ejecutará todas las pruebas de selenio en la máquina remota. en la cadena driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); simplemente debe mencionar IP de su máquina y esto debería funcionar.

Espero que esto te ayude.

+0

¿Se ejecuta el seleniuim-server en la máquina con el navegador o con las pruebas? Mis pruebas se ejecutan desde la línea de comando en una máquina en la que ingreso, y mi navegador está en mi máquina local – confusified

+1

en mi aproximación (en el proyecto actual) el servidor selenium se ejecuta en la máquina virtual (máquina remota) y el navegador está en máquina virtual (remota) máquina) también. El conjunto de pruebas está en mi máquina local pero voy a enviarlo al repositorio, agregar tareas a Hudson-jenkins para sacarlas del repositorio y ejecutarlas de forma remota. Saludos –

+0

Puede hacerlo utilizando el contenedor docker para el navegador Chrome. Consulte http://underthehood.meltwater.com/blog/2016/11/09/using-docker-with-selenium-server-to-run-your-browser-tests/ y https://github.com/SeleniumHQ/docker-selenio – vikramvi

Cuestiones relacionadas