lunes, 30 de agosto de 2010

Selenium y Firefox

RESUMEN:


Vamos a ver como crear un perfil de Firefox para usar con Selenium . Este perfil lo configuraremos para que nos permita conectarnos a través de https ( a un servidor con un certificado no firmado por una autoridad certicadora) sin que nos esté preguntando por la aceptación del certificado.

De paso, configuraremos el perfil de Firefox para que acepte automáticamente la descarga ficheros y los guarde en un determinado directorio.



1. - Creamos un perfil firefox que usaremos con Selenium


Para ello, arrancamos firefox en modo gestión de perfiles desde la línea de comandos.


$ firefox -ProfileManager -no-remote



Creamos un nuevo perfil que llamaremos Selenium y guardaremos en nuestro home, en la carpeta firefox-selenium-profile, que crearemos usando el botón "Choose folder"


Una vez creado, podremos seleccionarlo usando el Profile Manager de Firefox




2. - Configurar el perfil para que acepte un certificado determinado


Cuando accedemos por primera vez a un site con un certificado no firmado ( por ejemplo nuestra aplicación desplegada en Tomcat con un certificado que hemos creado nosotros mismo), Firefox detectará que no es una conexión verificada y preguntará qué queremos hacer.


Si estamos usando Selenium para realizar tests sobre nuestra aplicación, no nos interesa que nos esté preguntado esto en cada test qué hacer con el certificado. Para evitar esto, accederemos a nuestra URL con el nuevo perfil y aceptaremos el certificado.

$ firefox -P Selenium https://localhost:8443

Añadimos una excepción, obtenemos el certificado y confirmamos la excepción de seguridad


Cerramos Firefox. La siguiente vez que accedamos con este perfil,  no nos preguntará por el certificado


3.  - Configuramos Selenium para que use ese perfil.


Ahora cuando arranquemos el servidor Selenium le especificaremos qué perifl de Firefox queremos usar

 $ java -jar selenium-server-1.0.1-standalone.jar -firefoxProfileTemplate /home/ehdez/firefox-selenium-profile/



16:15:52.903 INFO - Java: Sun Microsystems Inc. 14.0-b16
16:15:52.914 INFO - OS: Linux 2.6.30.10-105.2.23.fc11.i686.PAE i386
16:15:52.969 INFO - v1.0.1 [2697], with Core v@VERSION@ [@REVISION@]
16:15:53.205 INFO - Version Jetty/5.1.x
16:15:53.207 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
16:15:53.208 INFO - Started HttpContext[/selenium-server,/selenium-server]
16:15:53.209 INFO - Started HttpContext[/,/]
16:15:53.214 INFO - Started SocketListener on 0.0.0.0:4444
16:15:53.217 INFO - Started org.mortbay.jetty.Server@110d81b



Si el servidor de Selenium lo arrancamos desde una tarea Ant :


<target name="start-selenium" >
<java jar="selenium-server-1.0.1-standalone.jar" 
fork="true" 
spawn="true" >
<arg line="-firefoxProfileTemplate /home/ehdez/firefox-selenium-profile/"/> </java>
</target>



4. - Especifciar ruta  para la descarga de ficheros en Firefox

Nuestra aplicación web puede generar ficheros para descargar,  Firefox nuevamente nos vuelve a preguntar qué queremos hacer con ese fichero:


  Nuevamente, si estamos realizando test con Selenium no nos interesa que nos esté preguntando dónde guardar esos ficheros, así que configuraremos el perfil para que los guarde automáticamente en un determinado directorio. Por ejemplo en /tmp



Editamos el fichero prefs.js que se encuentra en el directorio del perfil (/home/ehdez/firefox-selenium-profile) y añadimos las siguientes líneas

user_pref("browser.download.dir", "/tmp");
user_pref("browser.download.downloadDir", "/tmp");
user_pref("browser.download.folderList", 2); // this can probably be 0,1, or 2
user_pref("browser.download.manager.showWhenStarting", false);

No hay comentarios:

Publicar un comentario