我正在运行一个使用Watir的Ruby脚本来为我自动化一些东西。我正在尝试自动将某些文件保存到某个目录。因此,在我的Mozilla设置中,我将默认下载目录设置为说出桌面并选择自动保存文件。
但是,当我开始运行脚本时,这些更改不会反映出来。似乎首选项恢复为默认值。我已经包含以下内容
require "rubygems" # Optional.
require "watir-webdriver" # For web automation.
require "win32ole" # For file save dialog.
并使用以下命令打开一个新的firefox实例
browser = Watir::Browser.new(:firefox)
关于为什么偏好会因此受到挫折的任何想法?或者我正在尝试做什么的其他想法? (自动保存文件)。
由于
答案 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/**/"]