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);

相關文件

網頁好讀版