2015
May
24

Firefox Profile 是用來指定 firefox 的設定檔,透過 profile 我們可以用來停用部分 browser 功能來實現自動化測試的功能,一般 selenium 會自動建立一個新的 Firefox Profile ,這個 profile 預設是不能用來下載檔案的,如果你用 webdriver 來點擊下載檔案的功能,那麼頁面就會跳出一個確認視窗,然後頁面就會卡在那裡,這時我們就可以透過 profile 的設定,讓下載檔案這件事不需要點擊確認。

如何建立一個 profile 呢,首先你可以去看 Mozilla 官方文件。

這裡我建立好一個 profile 叫 "test_profile",你可以在網址列輸入 about:config ,就能打開 Firefox 的所有設定,因為我想停用檔案下載的確認視窗,那個功能設定值為 "browser.helperApps.neverAsk.saveToDisk" ,找到這個值,然後設定允許下載的檔案類型,例如 Excel 檔為 "application/vnd.ms-excel"。

接著程式要設定 "webdriver.firefox.profile" 的值,指定我們要用的 Profile 名稱即可。

PHP webdriver
  1. $caps = DesiredCapabilities::firefox();
  2. $caps->setCapability("webdriver.firefox.profile", "test_profile");
  3. $driver = RemoteWebDriver::create("selenium url xxx", $caps, 5000);

另外 Facebook webdriver 也提供了另一個方式,可以即時設定 Firefox Profile。


Example
  1. $profile = new FirefoxProfile();
  2. $profile->setPreference(
  3. 'browser.helperApps.neverAsk.saveToDisk',
  4. 'application/vnd.ms-excel'
  5. );
  6. $profile->addExtension('firebug-2.0.1.xpi');
  7.  
  8. $caps = DesiredCapabilities::firefox();
  9. $caps->setCapability(FirefoxDriver::PROFILE, $profile);
  10. $driver = RemoteWebDriver::create($seleniumUrl, $caps, 5000);

相關文件


回應 (Leave a comment)