Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium和Firefox 9';s";你会帮助改进Mozilla Firefox吗;弹出窗口_Java_Firefox_Selenium_Selenium Webdriver - Fatal编程技术网

Java Selenium和Firefox 9';s";你会帮助改进Mozilla Firefox吗;弹出窗口

Java Selenium和Firefox 9';s";你会帮助改进Mozilla Firefox吗;弹出窗口,java,firefox,selenium,selenium-webdriver,Java,Firefox,Selenium,Selenium Webdriver,我正在尝试使用Selenium 2.16.1测试Java web应用程序。当Selenium打开Firefox时,我在页面顶部看到一个带“你会帮助改进Mozilla Firefox吗?” 由于某种原因,这会中断 selenium.click("id=submit"); selenium.waitForPageToLoad("60000"); 它正在尝试登录-它变成了一个no-op,并且测试失败,因为它期望已经登录。如果我在继续之前打断单击行并清除“will you help”(你会帮忙)栏,

我正在尝试使用Selenium 2.16.1测试Java web应用程序。当Selenium打开Firefox时,我在页面顶部看到一个带“你会帮助改进Mozilla Firefox吗?”

由于某种原因,这会中断

selenium.click("id=submit");
selenium.waitForPageToLoad("60000");
它正在尝试登录-它变成了一个no-op,并且测试失败,因为它期望已经登录。如果我在继续之前打断单击行并清除“will you help”(你会帮忙)栏,则表单提交成功

有没有办法阻止这个乐队出现?(我想这意味着在Firefox的默认配置文件中设置一个属性——我在哪里可以找到它呢?)或者有没有办法让Selenium先发现并消除这个问题?谢谢我正在使用Firefox9.0.1


解决了-谢谢Danny!以防下面的答案和评论不清楚:
这是2.16.1的一个问题,IMO的最佳解决方案是升级到2.17或更高版本


彼得在下面指出,这个问题在“你愿意帮忙吗”的信息中排名很高。如果要禁用它,请执行以下操作:

  • Firefox 9/10+:(请投票支持)
  • Firefox 6-8/9或更早版本:(请投赞成票)

这是遥测功能,提示由toolkit.telemetry.prompted属性控制:

您可以通过prefs.js进行设置:

同样相关的还有:


我找到了一个解决办法。使用:

    WebDriver driver;
    ...
    WebElement elem = driver.findElement(By.id("submit"));
    elem.sendKeys(Keys.RETURN);
这就像用Tab键到达元素后按“Enter”键一样


丹尼

我也面临着同样的问题。 解决方案是使用最新的Selenium服务器jar文件(Selenium Server standalone.jar)。
因此,它可以在最新的firefox版本中正常工作,并且在页面顶部不会显示“将帮助改进Mozilla firefox”消息。

由@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上测试)


来源:

谢谢。IIRC Selenium为每个会话创建一个完全干净的配置文件。我可以跳过一些障碍来创建一个模板配置文件,并让它使用它,但我希望有一种方法可以将其设置为全局默认值,这样我就不必这样做了。然而,最后一个链接是有希望的:听起来像快照Selenium构建将按原样工作。明天我回到办公室后,我会试一试。这看起来也会有帮助:谢谢——这很有趣。设置一个测试来确保我们可以像那样使用“enter”登录可能很值得,但我不想为了解决Selenium/Firefox互操作问题而改变我们在所有测试中单击按钮的方式。我尝试创建FF配置文件,遵循上面链接中的所有内容,包括使用
about:config
更改参数。然而,Selenium似乎从另一个地方获得了它的简介。第一个答案对你有效?对我有效的一点是第一个答案中的底部链接:它固定在行李箱中。我从他们的源代码管理中为自己构建了一个快照selenium,这很有效——令人恼火的是,他们的CI服务器已经几个月没有运行了,所以你需要自己来做。如果您想在Selenium中使用自定义概要文件,那么需要在启动Selenium服务器jar时在命令行中指定它;我以前使用它来获得含Selenium的NTLM登录,至少我希望它能起作用,但我还没有尝试过。我不知道如何在Eclipse中为Selenium配置它(这就是我正在使用的)。这是我的本地maven存储库缓存中的一个zip文件-如果您使用的是maven,那么您应该能够将其解压缩到存储库目录中,然后像往常一样以2.0-SNAPSHOT版本访问它。恐怕android版本失败了,所以它肯定不支持,而且除了firefox之外,我还没有在其他任何东西上测试过它。我在你提供的链接上下载了快照。这可能是一种不好的做法-但通常我运行(
java-jar selenium-server-standalone-2.16.1.jar
),然后使用
selenium-java-2.16.1.jar
启动java测试。似乎selenium服务器下的jar在执行时导致java空指针异常。如果我用maven的话也许会有用的谢谢。然而,这并不是我使用的解决方案:正如我们在评论中继续讨论的那样——这也是我接受他的答案的原因——IMO最好的方法是将Selenium升级到最新版本,以便它能够处理对话框本身。没错,但由于这个问题目前是谷歌遥测文本的最热门结果,人们可能会来这里(包括我自己)不希望使用Selenium解决问题。