openqa - Iniciando Selenium con perfil personalizado de Firefox desde Eclipse
selenium webdriver (2)
la versión de código que tienes arriba asume que estás ejecutando tus pruebas contra localhost en el puerto 4444 por eso tiene 2 parámetros en la configuración.
Para configurar eclipse para que funcione, deberá actualizar la configuración de ejecución. Eso está bajo
Run > Run Configurations
Busca el elemento que tiene selenio y agrega la configuración anterior para que cuando se ejecute lo levante y se ejecute.
Personalmente, simplemente arranco el servidor cuando empiezo a trabajar ejecutando un archivo por lotes y lo mato al final del día.
Estoy ejecutando pruebas de Selenium desde Eclipse, pero no puedo cargar un perfil de Firefox personalizado.
La mayoría de las fuentes sugieren que necesito iniciar el servidor de Selenium de esta manera:
java -jar selenium-server.jar -firefoxProfileTemplate </path/to/template/>
Pero al lanzar mi prueba desde Eclipse, no utiliza eso: las pruebas se ejecutarán si el Selenium Server no se está ejecutando.
Este hilo sugiere que puedo configurar el perfil en el constructor DefaultSelenium:
Selenium RC: desactivación de la cookie del navegador
Pero el código generado para mí por Selenium IDE (complemento de Firefox) no usa ese constructor:
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class Example extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://www.example.com/", "*firefox");
}
public void testExample() throws Exception {
selenium.open("/");
selenium.click("//body");
}
}
¿Dónde debería configurar las opciones de configuración de DefaultSelenium? ¿O hay algún otro método que pueda usar para cargar mi plantilla personalizada de Firefox?
¡Gracias! Stu
Hice un SeleniumTestCase que inicia / detiene el servidor antes / después de cada clase de prueba y comienza / detiene la instancia de Selenium antes / después de cada prueba:
public class SeleniumTestCase {
protected static Selenium selenium;
protected static AppNavUtils appNavUtils;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
SeleniumServerControl.getInstance().startSeleniumServer();
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
SeleniumServerControl.getInstance().stopSeleniumServer();
}
@Before
public void setUp() throws Exception {
// Replace "*chrome" with "*firefox" for Selenium > 1.0
selenium = new DefaultSelenium("localhost", 5444, "*chrome", "http://localhost:8080/");
selenium.start();
appNavUtils = new AppNavUtils(selenium);
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
SeleniumServerControl inicia y detiene el servidor:
public class SeleniumServerControl {
private static final SeleniumServerControl instance = new SeleniumServerControl();
public static SeleniumServerControl getInstance()
{
return instance;
}
private SeleniumServer server = null;
protected SeleniumServerControl(){}
public void startSeleniumServer() {
if (server == null) {
RemoteControlConfiguration rcc = new RemoteControlConfiguration();
rcc.setPort(5444);
//rcc.setFirefoxProfileTemplate(newFirefoxProfileTemplate)
server = new SeleniumServer(rcc);
}
server.start();
}
public void stopSeleniumServer()
{
if (server != null) {
server.stop();
server = null;
}
}
}