Watir更改Mozilla Firefox首选项

我正在运行一个使用Watir的Ruby脚本来为我自动化一些东西。 我正在尝试自动将某些文件保存到某个目录。 因此,在我的Mozilla设置中,我将默认下载目录设置为说桌面并选择自动保存文件。

但是,当我开始运行脚本时,这些更改不会反映出来。 似乎首选项恢复为默认值。 我已经包括以下内容

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

并打开一个新的firefox实例:

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

关于为什么偏好会因此受到挫折的任何想法? 或者我正在尝试做什么的其他想法? (自动保存文件)。

谢谢

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 

有关配置自动文件下载的示例,请参阅Selenium wiki上的此部分 。

更改下载位置的默认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应用程序中轻松访问Rails.root / lib文件夹,您需要将此代码或类似内容添加到您的config / application.rb文件中:

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

有关更多信息: http : //watirwebdriver.com/browser-downloads/