2012-01-09 12 views
10

Estoy tratando de probar una aplicación web Java utilizando Selenium 2.16.1. Cuando selenio abre Firefox, veo una banda en la parte superior de la página con el mensaje "¿Quieres ayudar a mejorar Mozilla Firefox"Selenium y la ventana emergente de Firefox 9 de "¿Quieres ayudar a mejorar Mozilla Firefox"

Will you help improve Mozilla Firefox by sending anonymous information about perfomance, hardware characteristics, feature usage, and browser customisations to Mozilla?

Por alguna razón esto rompe

selenium.click("id=submit"); 
selenium.waitForPageToLoad("60000"); 

que está tratando de inicie sesión - se convierte en no operativa, y la prueba falla porque está esperando iniciar sesión. Si rompo la línea de clic y borro la banda '¿quieres ayudar' antes de continuar, el envío del formulario se realiza correctamente.

¿Hay alguna manera de evitar que aparezca esta banda? (Supongo que eso significaría establecer una propiedad en el perfil predeterminado de Firefox, ¿dónde lo encuentro?). ¿O hay una forma de hacer que Selenium detecte y descarte esto primero? ¡Gracias! Estoy usando Firefox 9.0.1.


Resuelto - gracias Danny! En caso de que no quede claro a partir de las respuestas y comentarios a continuación:
Esto fue un problema con la versión 2.16.1 e IMO, la mejor solución es actualizar a la versión 2.17 o posterior.


Peter señala que esta pregunta está muy bien clasificada para el mensaje "Will you help". Si usted está buscando para desactivarlo:

Respuesta

6

Esta es la función de telemetría, y el indicador está controlado por la propiedad toolkit.telemetry.prompted:

https://wiki.mozilla.org/Security/Reviews/Firefox6/ReviewNotes/telemetry

Se puede establecer a través de prefs.js:

http://kb.mozillazine.org/Prefs.js_file

también relevante:

http://code.google.com/p/selenium/issues/detail?id=3144

+0

Gracias. IIRC Selenium crea un perfil completamente limpio para cada sesión. Puedo saltar algunos aros para hacer un perfil de plantilla y hacer que lo use, pero esperaba una manera de establecerlo como un valor predeterminado global, así que no tendría que hacerlo. Sin embargo, el último enlace es prometedor: parece una instantánea. La construcción de Selenium solo funcionará tal como está. Lo intentaré cuando vuelva a la oficina mañana. – Rup

+0

Sí, una compilación de instantáneas funcionó bien. Roll on 2.17. ¡Gracias! – Rup

+1

Esto parece que podría ayudar también: http://girliemangalo.wordpress.com/2009/02/05/creating-firefox-profile-for-your-selenium-rc-tests/ –

1

descubrí un poco de solución. Uso:

WebDriver driver; 
    ... 
    WebElement elem = driver.findElement(By.id("submit")); 
    elem.sendKeys(Keys.RETURN); 

es como presionar "Enter" después de llegar al elemento con la tecla Tab.

Danny

+0

Gracias - eso es interesante. Bien podría valer la pena configurar una prueba para asegurarnos de que podemos iniciar sesión usando 'enter' así, pero no quiero comenzar a cambiar la forma en que hacemos clic en los botones en todas nuestras pruebas solo para lidiar con un Selenium/Firefox problema de interoperabilidad – Rup

+0

Traté de crear perfiles FF, siguiendo todo lo de los enlaces anteriores, incluido el cambio de parámetros usando 'about: config'. Sin embargo, parece que Selenium obtiene su perfil de un lugar diferente. La primera respuesta funcionó para ti? – Daniel

+0

El bit que funcionó para mí fue el enlace inferior de la primera respuesta: está fijo en el tronco. Me construí una instantánea de selenio de su control de fuente y funcionó: molestamente su servidor de CI no ha estado funcionando durante meses, así que tienes que hacerlo tú mismo. Si desea usar un perfil personalizado con Selenium, debe especificarlo en la línea de comando cuando inicie el servidor de selenium jar; Lo he usado antes para obtener inicios de sesión NTLM con Selenium al menos, así que espero que funcione para esto, pero no lo he probado. No estoy seguro de cómo configurar eso para Selenium dentro de Eclipse (que es lo que estoy usando) – Rup

1

También estaba enfrentando el mismo problema. La solución para esto es Usar el último archivo jar del Servidor Selenium (selenium-server-standalone.jar). Por lo tanto, funcionará correctamente con la última versión de Firefox y en la parte superior de la página no se mostrará el mensaje "Ayudarás a mejorar Mozilla Firefox".

3

El enlace al que hace referencia @Danny Thomas no está actualizado (solo se aplica a Firefox 6/7/8).

Para deshacerse de la indicación, agregue las siguientes líneas a prefs.js en su directorio de perfil de usuario de firefox.

user_pref("toolkit.telemetry.enabled", false); 
user_pref("toolkit.telemetry.prompted", 2); 
user_pref("toolkit.telemetry.rejected", true); 

Tenga en cuenta que la configuración solicitada ha cambiado de 'False' a '2'.

Nota: Esto también se aplica al producto Firefox ESR (probado en 10.0.5).

Fuente: http://developers.sugarcrm.com/wordpress/2012/01/23/howto-disable-the-mozilla-firefox-telemetry-feature/

+0

Gracias. Sin embargo, esa no fue la solución que utilicé: como discutimos en los comentarios, para lo cual acepté su respuesta, la mejor manera fue actualizar Selenium a la última versión para que pueda manejar el diálogo en sí. – Rup

+0

Es cierto, pero dado que esta pregunta es actualmente el resultado superior de google para el texto de telemetría, es posible que venga gente (incluida yo) que no está buscando resolver un problema con Selenium. –

Cuestiones relacionadas