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);
回應 (Leave a comment)