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
- $caps = DesiredCapabilities::firefox();
- $caps->setCapability("webdriver.firefox.profile", "test_profile");
- $driver = RemoteWebDriver::create("selenium url xxx", $caps, 5000);
另外 Facebook webdriver 也提供了另一個方式,可以即時設定 Firefox Profile。
Example
- $profile = new FirefoxProfile();
- $profile->setPreference(
- 'browser.helperApps.neverAsk.saveToDisk',
- 'application/vnd.ms-excel'
- );
- $profile->addExtension('firebug-2.0.1.xpi');
- $caps = DesiredCapabilities::firefox();
- $caps->setCapability(FirefoxDriver::PROFILE, $profile);
- $driver = RemoteWebDriver::create($seleniumUrl, $caps, 5000);