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)