Selenium和Firefox 9的“你会帮助改善Mozilla Firefox吗”弹出窗口

10
我试图使用 Selenium 2.16.1 测试一个 Java web 应用程序。当 Selenium 打开 Firefox 时,我看到页面顶部有一条消息:"你是否愿意通过向 Mozilla 发送关于性能、硬件特性、功能使用情况和浏览器自定义的匿名信息来帮助改进 Mozilla Firefox"。

Will you help improve Mozilla Firefox by sending anonymous information about perfomance, hardware characteristics, feature usage, and browser customisations to Mozilla?

由于某种原因,这会导致错误。
selenium.click("id=submit");
selenium.waitForPageToLoad("60000");

测试在尝试登录时出现“will you help”信息条,导致测试失败,因为此时测试期望已经登录。如果我在点击该行代码时停下来并清除“will you help”信息条,然后继续提交表单,则表单提交成功。

是否有方法可以防止出现这个信息条?(我认为这意味着在Firefox的默认配置文件中设置属性-我在哪里找到它?)或者有没有办法让Selenium检测并解除这个信息条?谢谢! 我正在使用Firefox 9.0.1。


已解决 - 谢谢Danny! 以防答案和下面的评论不清晰:
这是2.16.1版本的一个问题,我认为最好的解决方案是升级到2.17或更高版本。


Peter指出,这个问题对于“Will you help”消息本身非常重要。如果您想禁用它:

4个回答

6

谢谢。如果我没记错,Selenium会为每个会话创建一个完全干净的配置文件。我可以通过一些方法来创建模板配置文件并将其用作默认配置文件,但我希望有一种方法来全局设置默认值,这样我就不必这样做了。不过最后一个链接很有希望:它听起来像是快照版本的Selenium将按原样工作。明天我回到办公室后会尝试一下。 - Rup
1
这个看起来也许会有帮助:http://girliemangalo.wordpress.com/2009/02/05/creating-firefox-profile-for-your-selenium-rc-tests/ - Danny Thomas

3

@Danny Thomas提供的链接已经过时(仅适用于Firefox 6/7/8)。

要消除提示,请添加以下行到您的Firefox用户配置文件目录中的prefs.js文件中。

user_pref("toolkit.telemetry.enabled", false);
user_pref("toolkit.telemetry.prompted", 2);
user_pref("toolkit.telemetry.rejected", true);

请注意,提示设置已从“False”更改为“2”。
注:这也适用于Firefox ESR产品(在10.0.5上测试)。
来源:http://developers.sugarcrm.com/wordpress/2012/01/23/howto-disable-the-mozilla-firefox-telemetry-feature/

谢谢。然而,那不是我使用的解决方案:正如我们在评论中讨论的那样 - 这也是我接受他的答案的原因 - 在我看来,最好的方法是将Selenium升级到最新版本,这样它就可以自己处理对话框。 - Rup
确实如此,但由于这个问题目前是遥测文本的谷歌搜索结果中排名最高的,可能会有一些人(包括我自己)来到这里,并不是为了解决使用Selenium的问题。 - Peter Bernier

1
我也遇到了同样的问题。 解决方法是使用最新的Selenium Server jar文件(selenium-server-standalone.jar)。 这样它就可以与最新版本的Firefox正常工作,并且页面顶部不会显示“您是否愿意帮助改进Mozilla Firefox”的消息。

1

我发现了一个小技巧。使用:

    WebDriver driver;
    ...
    WebElement elem = driver.findElement(By.id("submit"));
    elem.sendKeys(Keys.RETURN);

这就好像在使用 Tab 键到达元素后按下 "Enter" 键。

Danny


谢谢 - 这很有趣。建立一个测试来确保我们可以使用“回车”进行登录可能是值得的,但我不想开始更改我们所有测试中点击按钮的方式,只是为了应对Selenium/Firefox之间的兼容性问题。 - Rup
我尝试创建FF配置文件,按照上述链接中的所有步骤进行操作,包括使用“about:config”更改参数。然而 - 似乎Selenium从不同的地方获取其配置文件。第一个答案对你有用吗? - Daniel
对我有用的是第一个答案中的底部链接:它在主干中已经修复。我从他们的源代码控制中构建了一个快照Selenium,那个可以工作 - 令人恼火的是,他们的CI服务器已经停止运行几个月了,所以你需要自己做。如果您想使用自定义配置文件与Selenium一起使用,则需要在启动selenium服务器jar时在命令行上指定它;至少我之前使用过这个方法来获取Selenium的NTLM登录,所以我认为它会对此起作用,但我还没有尝试过。不确定如何为Eclipse内部的Selenium进行配置(这是我正在使用的)。 - Rup
这是我几天前的快照构建(http://rupertwood.com/temp/selenium-2.0-SNAPSHOT-20120110.zip)。这是来自我的本地maven存储库缓存的zip文件 - 如果您正在使用maven,则应该能够将其解压缩到存储库目录中,然后像往常一样访问版本2.0-SNAPSHOT。很抱歉安卓构建失败了,因此它绝对不支持该平台,并且我还没有在除Firefox之外的任何其他浏览器上进行过测试。 - Rup
我下载了你给出的链接上的快照。这可能是一种不好的做法 - 但通常我会运行(java -jar selenium-server-standalone-2.16.1.jar),然后使用selenium-java-2.16.1.jar启动我的Java测试。似乎在selenium-server下的jar执行时会引发Java空指针异常。如果我使用maven可能会有用。 - Daniel
抱歉,上周离开了。有可能是某个依赖项没能成功构建。不会是Maven的问题,而是Eclipse集成会以不同的方式启动服务器(是否明确指定了浏览器引擎?)。然而他们现在已经发布了2.17版,所以这都没有意义了 - 这个版本应该可以直接使用。 - Rup

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