30 votos

¿Cómo detener el selenio de creación de perfiles de Firefox temporal utilizando el Driver de la Web?

Estoy usando API de controlador de la Web de selenio con Java. Cada vez que quiero depurar mis casos de prueba, se crea un perfil temporal para Firefox en el directorio de archivos temporales. Se trata de un dolor de cabeza de dos maneras.

  1. Definitivamente está tomando tiempo para crear un perfil y ocupa espacio innecesario.
  2. No puedo instalar cualquier addons que será disponible próxima vez que inicie mis casos de prueba.

¿Cómo puedo evitar esto?

25voto

Ross Patterson Puntos 6512

Puede controlar cómo el Firefox conductor elige el perfil. Establecer el webdriver.firefox.profile de la propiedad a nombre del perfil que desea utilizar. La mayoría de la gente piensa que esto es una mala idea, porque vas a heredar todas las cookies, caché de contenido, etc. de los usos previos del perfil, pero es permitido si realmente quieres hacerlo.

Por ejemplo:

System.setProperty("webdriver.firefox.profile", "MySeleniumProfile");
WebDriver driver = new FirefoxDriver(...);

ACTUALIZACIÓN - De Ranhiru

Cómo he manejado para Java

FirefoxProfile profile = new FirefoxProfile(new File("D:\\Selenium Profile"));                  
WebDriver driver = new FirefoxDriver(profile);

A continuación, he cambiado la configuración de Firefox para borrar todas las cookies y la memoria caché al salir. Mira aquí cómo hacerlo.

3voto

Kanishka Dilshan Puntos 413

Puede cargar el FirefoxWebDriver con los plugins deseados llamando al método addExtension(File) en clase FirefoxProfile.

por ejemplo

    try {
      File firebug = new File("C:\\FFPlugins\\firebug-1.7.3.xpi");
      File xpathChecker = new File("C:\\FFPlugins\\xpath_checker-0.4.4-fx.xpi");
      profile.addExtension(firebug);
      profile.setPreference("extensions.firebug.currentVersion", "1.7.3");
      profile.addExtension(xpathChecker);
      profile.setPreference("extensions.xpath_checker.currentVersion", "0.4.4");
    } catch(IOException e) {
      e.printStackTrace();
    }
    driver = new FirefoxDriver(profile);

:)

2voto

Ranhiru Cooray Puntos 9301

La respuesta fue en realidad es bastante fácil, después me fui a través de esta pregunta , donde puedo encontrar la documentación. He encontrado el FirefoxProfile de la clase y el constructor tomó la ruta de acceso al Perfil de Firefox.

WebDriver driver = null;
FirefoxProfile profile = new FirefoxProfile(new File("C:\\Users\\Ranhiru\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\qp1nizdo.Selenium"));
driver = new FirefoxDriver(profile);

He creado un nuevo perfil ejecutando "Firefox.exe" con el -p bandera.

Firefox.exe -p

Instala las extensiones que necesitaba para este perfil y yo era bueno para ir! :)

Actualización

No importa si se asigna un perfil o no, el perfil temporal en la carpeta temp se crea, sin embargo. Mediante la creación y asignación de un perfil que tienes la posibilidad de utilizar firebug/xpather/favorito de su extensión durante la prueba.

0voto

Woodman81 Puntos 28

Tengo que crear un perfil personalizado ejecutando el comando:

firefox -profileManager (luego de añadir ningún excepciones etc que requieren - como debido a que el selenio apertura perfil limpio/instancia cada vez que las excepciones se pierden)

Luego fui directamente a la creación de mi Firefox con este perfil con la siguiente:

private static String rutadeaccesodeperfil = "C:\fitnesse\Selenesse\FFProfiles";

private static FirefoxProfile ffprofile = new FirefoxProfile(rutadeaccesodeperfil);

private static IWebDriver controlador = new FirefoxDriver(ffprofile);

0voto

Max Puntos 272

No puede dejar de selenio de crear archivos temporales incluso haya especificado explícitamente. Pero usted puede borrar una vez finalizada las pruebas.

TemporaryFilesystem.getDefaultTmpFS().deleteTemporaryFiles()

Testado bajo MacOS y Ubuntu.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: