设置Selenium Firefox配置文件

Setting up Selenium Firefox profile

本文关键字:配置文件 Firefox Selenium 设置      更新时间:2024-03-23

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

我们发现,通过设置首选项"focusmanager.testmode"为true的FireFox配置文件,可以解决这个问题(https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/157)。

我的问题是,你知道在我们的网络驱动程序配置文件中还有其他值得拥有的偏好/能力吗?

这可以为我们在未来调试奇怪的问题/行为节省大量时间,如果您能给我任何建议,我将不胜感激。

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);

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

为了跟进我的评论,我非常反对使用一组自定义的首选项/配置文件设置:

  • 最大限度地减少测试内容与普通用户看到的内容之间的差异
  • 尽量减少特定于浏览器的代码
  • 此外,它还可以使在这样的网站上诊断问题变得更加复杂

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

我完全支持修复Firefox漏洞,甚至可能随着时间的推移,默认行为也会不断演变,前提是每个人都"站在同一个页面上"。我认为如果没有人选择不同的解决方案,测试就足够复杂了。