设置Selenium Firefox配置文件

3

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

我们发现可以通过设置具有偏好设置“focusmanager.testmode”为true的FireFox配置文件来解决此问题(https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/157)。

我的问题是,您是否知道任何其他值得在我们的配置文件/WebDriver配置中拥有的偏好设置/功能/其他内容?

这可能会在未来调试奇怪的问题/行为时节省我们很多时间,如果您能给我任何建议,我将非常感激。


2
说实话,我对于拥有一套自定义偏好设置/配置文件的想法持反对态度:(a) 为了最小化测试和普通用户所看到的差异,(b) 为了最小化特定于浏览器的代码。我完全支持修复FF错误并更改默认行为,而不是让人们选择不同的解决方法。换句话说,我希望Firefox成为一个黑盒子。 - Andrew Regan
@AndrewRegan,您能否将您的评论作为答案给出,这样我就可以将其标记为已接受的答案了吗?谢谢。 - acontell
2个回答

3
火狐浏览器有各种偏好设置,可以进行调整以提高测试稳定性。但正如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);

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

我们决定不干涉个人资料,而选择安德鲁·里根的解决方案。无论如何,还是谢谢。 - acontell

0

仅仅是跟进我的评论,我非常反对设置一组自定义偏好/配置文件设置:

  • 最小化测试和普通用户所看到的差异
  • 最小化特定于浏览器的代码
  • 此外,它可能会使在像这样的网站上诊断问题更加复杂

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

我完全支持修复Firefox中的错误,甚至随着时间的推移改变默认行为,前提是每个人都“在同一页”。我认为测试已经足够复杂了,不需要人们选择不同的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接