设置Selenium Firefox配置文件

时间:2016-04-09 16:08:45

标签: javascript selenium selenium-webdriver cucumber

运行我们的测试时,我们遇到了与浏览器没有焦点时FireFox管理事件的方式相关的问题。

我们发现可以解决此问题,设置FireFox配置文件,并将首选项“focusmanager.testmode”设置为true(https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/157)。

我的问题是,你知道在我们的webdriver的配置文件/配置中有任何其他偏好/能力/值得拥有的东西吗?

这可以为我们节省很多时间来调试奇怪的问题/行为,我真的很感激你能给我的任何建议。

2 个答案:

答案 0 :(得分:3)

Firefox有各种各样的首选项,可以通过调整来提高测试的稳定性。但正如Andrew Regan指出的那样,改变任何事情可能会影响你的测试,这可能不是一个好主意。

无论如何,这是一组prefs我用来使测试失败的次数较少,因为浏览器的意外行为:

// Disable checking if firefox is default browser
lockPref('browser.shell.checkDefaultBrowser', false);

// Disable restoring session
lockPref('browser.sessionstore.resume_from_crash', false);

// Disable updater
lockPref("app.update.enabled", false);
// make absolutely sure it is really off
lockPref("app.update.auto", false);
lockPref("app.update.mode", 0);
lockPref("app.update.service.enabled", false);

// Prevent closing dialogs
lockPref("browser.showQuitWarning", false);
lockPref("browser.warnOnQuit", false);
lockPref("browser.tabs.warnOnClose", false);
lockPref("browser.tabs.warnOnCloseOtherTabs", false);

// Disable Add-ons compatibility checking
clearPref("extensions.lastAppVersion");

// Don't show 'know your rights' on first run
pref("browser.rights.3.shown", true);

//Disable plugin checking
lockPref("plugins.hide_infobar_for_outdated_plugin", true);
clearPref("plugins.update.url");

// Disable health reporter
lockPref("datareporting.healthreport.service.enabled", false);

// Disable all data upload (Telemetry and FHR)
lockPref("datareporting.policy.dataSubmissionEnabled", false);

// Disable crash reporter
lockPref("toolkit.crashreporter.enabled", false);
Components.classes["@mozilla.org/toolkit/crash-reporter;1"].getService(Components.interfaces.nsICrashReporter).submitReports = false;

// Browser Console command line
pref("devtools.chrome.enabled", true);

要自动设置prefs的过程,您可能希望使用所谓的Firefox autoconfig文件。 示例配置:https://github.com/cliqz-oss/firefox-autoconfigs

答案 1 :(得分:0)

为了跟进我的评论,我非常反对一组自定义偏好设置/个人资料设置:

  • 尽量减少测试内容与普通用户之间的差异
  • 最小化特定于浏览器的代码
  • 加上它可以在像这样更复杂的网站上诊断问题

换句话说,我希望Firefox(等)成为一个黑盒子。

我所有的Firefox错误都得到了修复,甚至可能是随着时间的推移而变化的默认行为,只要每个人都在同一页面上#34;。我认为测试很复杂,没有人选择不同的解决方法。