运行我们的测试时,我们遇到了与浏览器没有焦点时FireFox管理事件的方式相关的问题。
我们发现可以解决此问题,设置FireFox配置文件,并将首选项“focusmanager.testmode”设置为true(https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/157)。
我的问题是,你知道在我们的webdriver的配置文件/配置中有任何其他偏好/能力/值得拥有的东西吗?
这可以为我们节省很多时间来调试奇怪的问题/行为,我真的很感激你能给我的任何建议。
答案 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;。我认为测试很复杂,没有人选择不同的解决方法。