Watir更改Mozilla Firefox首选项

时间:2011-07-03 17:29:48

标签: ruby scripting automation screen-scraping watir

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

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

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

并使用以下命令打开一个新的firefox实例

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

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

由于

2 个答案:

答案 0 :(得分: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

有关配置自动文件下载的示例,请参阅Selenium wiki上的this section

答案 1 :(得分:2)

更改下载位置的默认Watir偏好设置

for chrome

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

for 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/