Bueno, yo no necesito cambiar de conductores de vez en cuando, así que hice esto:
inicializo cosas relacionadas con selenio en mi propia clase - llamado por su nombre de la aplicación y el controlador es abordado por los captadores . Al llamar a mi constructor de la clase, utilizo tipo de enumeración del controlador para inicializar con:
private WebDriver driver;
public TestUI(Environment.DriverToUse drv){
switch (drv){
case CHROME:{
ChromeDriverService service = ChromeDriverService.createDefaultService();
File file = new File(TestUI.class.getResource("/chromedriver.exe").toURI());
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, file.getAbsolutePath());
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
driver = new ChromeDriver(service,options);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
break;
}
case FIREFOX:{
FirefoxProfile ffProfile = new FirefoxProfile();
ffProfile.setPreference("browser.safebrowsing.malware.enabled", false);
driver = new FirefoxDriver(ffProfile);
driver.manage().window().setPosition(new Point(0, 0));
java.awt.Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension dim = new Dimension((int) screenSize.getWidth(), (int) screenSize.getHeight());
driver.manage().window().setSize(dim);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
break;
}
public WebDriver getDriver(){
return driver;
}
por supuesto mi clase Environment
se parece a esto
public class Environment {
public enum DriverToUse {FIREFOX, CHROME};
// .. and some other stuff, because I need to test on different environments, so I store here Environment URL for example
Y mi clase de prueba es como la siguiente
@Before
public static final Environment.DriverToUse USED_DRIVER = Environment.DriverToUse.FIREFOX;
@Test
public void testVersionNumber() throws Exception{
TestUI testUI= new TestUI(USED_DRIVER);
WebElement version = testUI.getDriver().findElement(By.id("the Id of element"));
version.click();
//...
}
Supongo que esto también funciona en una máquina local? Aunque intentaré – dermoritz
acabo de leer el documento (http://code.google.com/p/selenium/wiki/Grid2) parece que el problema persiste. con el servidor de selenio también tengo que instanciar "webdriver" con "capacidades" (un navegador específico). en este momento, usar el servidor de rc solo implica una sobrecarga de configuración. – dermoritz