Firefox为我们提供了非常丰富的配置功能,下面的代码就实现了配置下载目录的功能。
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.dir'] = "/tmp/webdriver-downloads"
profile['browser.download.folderList'] = 2
profile['browser.helperApps.neverAsk.saveToDisk'] = "application/pdf"
driver = Selenium::WebDriver.for :firefox, :profile => profile
通过这段代码,在测试进行时,firefox会将pdf文件下载到我们设置的目录中去。
不过如下是属性是不允许用户进行配置的:
FROZEN_PREFERENCES = {
"app.update.auto" => 'false',
"app.update.enabled" => 'false',
"browser.download.manager.showWhenStarting" => 'false',
"browser.EULA.override" => 'true',
"browser.EULA.3.accepted" => 'true',
"browser.link.open_external" => '2',
"browser.link.open_newwindow" => '2',
"browser.safebrowsing.enabled" => 'false',
"browser.safebrowsing.malware.enabled" => 'false',
"browser.search.update" => 'false',
"browser.sessionstore.resume_from_crash" => 'false',
"browser.shell.checkDefaultBrowser" => 'false',
"browser.tabs.warnOnClose" => 'false',
"browser.tabs.warnOnOpen" => 'false',
"devtools.errorconsole.enabled" => 'true',
"dom.disable_open_during_load" => 'false',
"extensions.logging.enabled" => 'true',
"extensions.update.enabled" => 'false',
"extensions.update.notifyUser" => 'false',
"network.manage-offline-status" => 'false',
"network.http.phishy-userpass-length" => '255',
"network.http.max-connections-per-server" => '10',
"prompts.tab_modal.enabled" => "false",
"security.warn_entering_secure" => 'false',
"security.warn_submit_insecure" => 'false',
"security.warn_entering_secure.show_once" => 'false',
"security.warn_entering_weak" => 'false',
"security.warn_entering_weak.show_once" => 'false',
"security.warn_leaving_secure" => 'false',
"security.warn_leaving_secure.show_once" => 'false',
"security.warn_submit_insecure" => 'false',
"security.warn_viewing_mixed" => 'false',
"security.warn_viewing_mixed.show_once" => 'false',
"signon.rememberSignons" => 'false',
"toolkit.networkmanager.disable" => 'true',
"javascript.options.showInConsole" => 'true',
"browser.dom.window.dump.enabled" => 'true',
"dom.report_all_js_exceptions" => "true"
}.freeze