1. 程式人生 > >Selenium-webdriver系列教程(17)————為firefox設定下載檔案的儲存目錄

Selenium-webdriver系列教程(17)————為firefox設定下載檔案的儲存目錄

Firefox為我們提供了非常豐富的配置功能,下面的程式碼就實現了配置下載目錄的功能。
Ruby程式碼  收藏程式碼
  1. profile = Selenium::WebDriver::Firefox::Profile.new
  2. profile['browser.download.dir'] = "/tmp/webdriver-downloads"
  3. profile['browser.download.folderList'] = 2  
  4. profile['browser.helperApps.neverAsk.saveToDisk'] = "application/pdf"
  5. driver = Selenium::WebDriver.for:firefox:profile => profile  

通過這段程式碼,在測試進行時,firefox會將pdf檔案下載到我們設定的目錄中去。

不過如下是屬性是不允許使用者進行配置的:
Ruby程式碼  收藏程式碼
  1. FROZEN_PREFERENCES = {  
  2.   "app.update.auto"                           => 'false',  
  3.   "app.update.enabled"                        => 'false',  
  4.   "browser.download.manager.showWhenStarting" => 'false',  
  5.   "browser.EULA.override"
                         => 'true',  
  6.   "browser.EULA.3.accepted"                   => 'true',  
  7.   "browser.link.open_external"                => '2',  
  8.   "browser.link.open_newwindow"               => '2',  
  9.   "browser.safebrowsing.enabled"              => 'false',  
  10.   "browser.safebrowsing.malware.enabled"
          => 'false',  
  11.   "browser.search.update"                     => 'false',  
  12.   "browser.sessionstore.resume_from_crash"    => 'false',  
  13.   "browser.shell.checkDefaultBrowser"         => 'false',  
  14.   "browser.tabs.warnOnClose"                  => 'false',  
  15.   "browser.tabs.warnOnOpen"                   => 'false',  
  16.   "devtools.errorconsole.enabled"             => 'true',  
  17.   "dom.disable_open_during_load"              => 'false',  
  18.   "extensions.logging.enabled"                => 'true',  
  19.   "extensions.update.enabled"                 => 'false',  
  20.   "extensions.update.notifyUser"              => 'false',  
  21.   "network.manage-offline-status"             => 'false',  
  22.   "network.http.phishy-userpass-length"       => '255',  
  23.   "network.http.max-connections-per-server"   => '10',  
  24.   "prompts.tab_modal.enabled"                 => "false",  
  25.   "security.warn_entering_secure"             => 'false',  
  26.   "security.warn_submit_insecure"             => 'false',  
  27.   "security.warn_entering_secure.show_once"   => 'false',  
  28.   "security.warn_entering_weak"               => 'false',  
  29.   "security.warn_entering_weak.show_once"     => 'false',  
  30.   "security.warn_leaving_secure"              => 'false',  
  31.   "security.warn_leaving_secure.show_once"    => 'false',  
  32.   "security.warn_submit_insecure"             => 'false',  
  33.   "security.warn_viewing_mixed"               => 'false',  
  34.   "security.warn_viewing_mixed.show_once"     => 'false',  
  35.   "signon.rememberSignons"                    => 'false',  
  36.   "toolkit.networkmanager.disable"            => 'true',  
  37.   "javascript.options.showInConsole"          => 'true',  
  38.   "browser.dom.window.dump.enabled"           => 'true',  
  39.   "dom.report_all_js_exceptions"              => "true"
  40. }.freeze