firefox - chrome - ¿Qué perfil utiliza Selenium WebDriver por defecto?
selenium webdriver java (4)
Al ejecutar webdriver en un servidor de prueba sin opciones para crear perfiles en la máquina, puede crear su perfil mediante programación:
private FirefoxProfile GetFirefoxProfile()
{
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.SetPreference("network.automatic-ntlm-auth.trusted-uris", "http://localhost");
return firefoxProfile;
}
¿Dónde obtiene Selenium WebDriver (también conocido como Selenium 2) el perfil anónimo que usa cuando abre FirefoxDriver? Si usó el valor predeterminado para Firefox,% appdata% / roaming / mozilla / firefox / profiles, entonces, si tuviera que deshabilitar un complemento de Firefox, también debería estar deshabilitado para Selenium WebDriver, ¿por qué no lo hace?
La obtención de un perfil no es útil, ya que está creando internamente otra copia del perfil llamado recuperado. Se requiere acceso al perfil original si, por ejemplo, los datos de cobertura de prueba deben escribirse en un almacén de datos a través de múltiples invocaciones.
Aquí hay una posible solución al anular la clase de Selenium de ProfilesIni
Comience por crear un perfil personalizado con firefox -p, diga "CustomSeleniumProfile"
ProfilesIni profileini = new ProfilesIni() {
@Override
public FirefoxProfile getProfile(String profileName) {
File appData = locateAppDataDirectory(Platform.getCurrent());
Map<String, File> profiles = readProfiles(appData);
File profileDir = profiles.get(profileName);
if (profileDir == null)
return null;
return new FirefoxProfile(profileDir);
}
};
FirefoxProfile profile = profileini.getProfile("CustomSeleniumProfile");
//profile.setEnableNativeEvents(false);
driver = new FirefoxDriver(profile);
//ffDriver.manage().deleteAllCookies();
driver.get("http://www.google.com");
Lo contestaré, apoyando el comentario de @twall: Al iniciar Firefox en Selenium 2 WebDriver, se inicia un perfil nuevo y anónimo.
Sin embargo, si desea cambiarlo, puede crear un nuevo perfil de Firefox y nombrarlo de alguna manera, ya sabe lo que es, por ejemplo, SELENIUM
Luego en tu código haz esto:
ProfilesIni profile = new ProfilesIni();
FirefoxProfile ffprofile = profile.getProfile("SELENIUM");
WebDriver driver = new FirefoxDriver(ffprofile);
De esa manera, Firefox siempre iniciará ese perfil. En el perfil haces todos los ajustes que necesitas.
Puede asignar a cada nodo de Selenium grid 2 un perfil específico de Firefox:
java -jar selenium-server-standalone-2.37.0.jar -Dwebdriver.firefox.profile = my-profile -role node -hub http://example-server.org:4444/grid/register
Observe que el valor de webdriver.firefox.profile debe ser el nombre del perfil de Firefox, no la ubicación o el nombre de la carpeta