2011-07-03 34 views
5

我正在运行一个使用Watir的Ruby脚本来为我自动化一些事情。我试图自动将某些文件保存到某个目录。因此,在我的Mozilla设置中,我将默认下载目录设置为桌面,并选择自动保存文件。Watir更改Mozilla Firefox首选项

但是,当我开始运行脚本时,不会反映这些更改。似乎喜好恢复为默认。我已经包括以下

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

,并打开一个新的Firefox实例与:

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

为什么偏好会重新设置这个任何想法?或者我想要做的任何替代想法? (自动保存文件)。

感谢

回答

7

webdriver的使用干净的轮廓为每个浏览器实例,这就是为什么偏好似乎是“复位”。你可以告诉它使用默认的配置文件:

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

或编程启动浏览器之前调整配置偏好:

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

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

对于配置文件自动下载的一个例子,看到this section对硒维基。

+0

我的个人资料[“dom.disable_open_during_load”]试过=真和值保持假时,浏览器实际启动。 – Madhu

2

更改默认的Watir喜好下载位置

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 

用于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 

注:要能够从方便地访问Rails.root/lib文件夹在您的Rails应用程序中,您需要将此代码或类似代码添加到您的config/application.rb文件中:

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

了解更多信息:http://watirwebdriver.com/browser-downloads/