运行我们的测试时,我们遇到了一个与 FireFox 在浏览器没有焦点时管理事件的方式相关的问题。
我们发现,通过将首选项“focusmanager.testmode”设置为 true (https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/157) 来设置 FireFox 配置文件可以解决此问题。
我的问题是,您是否知道我们的 webdriver 配置文件/配置中还有任何其他偏好/功能/值得拥有的东西?
这可以为我们在未来调试奇怪的问题/行为时节省大量时间,我非常感谢您给我的任何建议。
最佳答案
Firefox 有各种可以调整的首选项,以提高测试稳定性。但正如 Andrew Regan 指出的那样更改任何内容都可能会影响您的测试,因此,这可能不是一个好主意。
无论如何,这是我用来减少由于意外的浏览器行为而导致测试失败的一组首选项:
// 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);
要自动化设置首选项的过程,您可能喜欢使用所谓的 Firefox 自动配置文件。 示例配置:https://github.com/cliqz-oss/firefox-autoconfigs
关于javascript - 设置 Selenium Firefox 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36519316/