2011-07-03 17 views
5

Estoy ejecutando un script de Ruby usando Watir para automatizar algunas cosas para mí. Estoy intentando guardar automáticamente algunos archivos en cierto directorio. Entonces, en mi configuración de Mozilla configuré mi directorio de descarga predeterminado para decir el escritorio y elegí guardar automáticamente los archivos.Watir cambia las preferencias de Mozilla Firefox

Estos cambios, sin embargo, no se reflejan cuando comienzo a ejecutar mi script. Parece que las preferencias vuelven a su estado predeterminado. He incluido la siguiente

require "rubygems"   # Optional. 
require "watir-webdriver" # For web automation. 
require "win32ole"   # For file save dialog. 

y abrir una nueva instancia con Firefox:

browser = Watir::Browser.new(:firefox) 

¿Alguna idea de por qué las preferencias serían un retroceso con esto? ¿O ideas alternativas para lo que estoy tratando de hacer? (Guarda automáticamente los archivos).

Gracias

Respuesta

7

WebDriver utiliza un perfil limpio para cada instancia del navegador, por lo que las preferencias parecen ser "reset". Se puede decir que para utilizar el perfil predeterminado:

Watir::Browser.new :firefox, :profile => "default" 

o modificar las preferencias de perfil mediante programación antes de iniciar el navegador:

profile = Selenium::WebDriver::Firefox::Profile.new 
profile['some.preference'] = true 
profile.add_extension "/path/to/some/extension.xpi" 

Watir::Browser.new :firefox, :profile => profile 

Para un ejemplo de la configuración de las descargas automáticas de archivos, consulte this section en el selenio wiki.

+0

he probado con el perfil [ 'dom.disable_open_during_load'] = true y que el valor sigue siendo falsa cuando el navegador se pone en marcha realmente. – Madhu

2

cambio por defecto preferencias Watir para la ubicación de descarga

para el cromo

profile = Selenium::WebDriver::Chrome::Profile.new 
download_dir = File.join(Rails.root, 'lib', 'assets') 
profile['download.default_directory'] = download_dir 
profile[download.prompt_for_download] = false 
@b = Watir::Browser.new :chrome, :profile => profile 

para Firefox

profile = Selenium::WebDriver::Firefox::Profile.new  
download_dir = File.join(Rails.root, 'lib', 'assets') 
profile['browser.download.dir'] = download_dir 
profile['browser.helperApps.neverAsk.saveToDisk'] = "text/csv,application/pdf" 
@b = Watir::Browser.new. :firefox, :profile => profile 

Nota: para poder acceder a la carpeta Rails.root/lib fácilmente de dentro de su aplicación de rieles, necesitará agregar este código o algo similar a su archivo config/application.rb:

config.autoload_paths += Dir["#{config.root}/lib/**/"] 

para más información: http://watirwebdriver.com/browser-downloads/

Cuestiones relacionadas