5

我学习了如何将 Firefox 4 与 watir 和 webdriver(在 Win7 x64 上)一起使用,设置配置文件项。例子:

profile = Selenium::WebDriver::Firefox::Profile.new
profile["browser.download.useDownloadDir"] = true
profile["browser.download.dir"] = 'D:\\FirefoxDownloads'
profile["browser.helperApps.neverAsk.saveToDisk"] = "application/csv"
driver = Selenium::WebDriver.for :firefox, :profile => profile
browser = Watir::Browser.new(driver)

我尝试使用下面的示例将 CSV 文件设置为始终下载到特定目录,从不打开。上面的代码成功设置了自动下载到指定目录的所有文件,但是设置browser.helperApps.neverAsk.saveToDisk没有效果:我还是得到了打开/保存的问题。脚本运行后,Firefox 窗口仍然打开,我输入 URL about:config。我可以看到它browser.helperApps.neverAsk.saveToDisk已正确设置为application.csv,但在 firefox/options/options/applications 中我看不到 CSV 文件的条目。似乎真正有效的菜单设置并没有真正与 about:config 设置绑定。我究竟做错了什么?

4

2 回答 2

12

我已经为你做了一些测试,不幸的是,CSV 文件似乎没有标准的内容类型。您可以尝试传递以逗号分隔的内容类型列表,希望其中一种对您有用。对我来说,是 application/octet-stream 做到了这一点......

require 'watir-webdriver'
require 'selenium-webdriver'

profile = Selenium::WebDriver::Firefox::Profile.new
profile["browser.download.useDownloadDir"] = true
profile["browser.download.dir"] = '/tmp'
profile["browser.helperApps.neverAsk.saveToDisk"] = "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream"
driver = Selenium::WebDriver.for :firefox, :profile => profile
browser = Watir::Browser.new(driver)

browser.goto "http://altentee.com/test/test.csv"
于 2011-04-09T21:24:01.493 回答
4

在 Firefox 6+ 中,如果不专门设置 'browser.download.folderList' 值,我无法让它工作:

profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.folderList'] = 2 #custom location
profile['browser.download.dir'] = download_directory
profile['browser.helperApps.neverAsk.saveToDisk'] = "text/csv, application/csv"
b = Watir::Browser.new :firefox, :profile => profile

请参阅:http ://watirwebdriver.com/browser-downloads/

于 2011-08-24T05:48:45.280 回答