使用Selenium IDE处理FireFox中的安全警告弹窗

4

我正在使用Selenium IDE 2.5.0。

当使用Firefox 23.0.1时,它会显示一个“安全警告”弹窗,其中包含“继续”和“取消”选项。一旦出现此弹窗,在点击“继续”或“取消”之前,它不允许选择任何内容或查看源文件。

我尝试了所有提到的解决方案,如about:config,但列表中没有security.warn。

我还尝试在安全选项卡/设置按钮(警告消息)中禁用所有警告enter image description here

有人建议模拟“Enter”键,但我无法得到如何查看弹出窗口名称的选项,因为我无法查看源文件。

你能帮忙解决这个问题吗?

我已经为此挣扎了两个多星期。

感谢您的建议!

Amit

2个回答

0

首先,我会尝试摆脱这个消息。似乎存在配置错误,浏览器试图警告用户。

2)到目前为止,我没有遇到过完全相同的消息,但关闭警报的方法如下:

executeScript("window.alert.myAlertText = null;");
executeScript("window.confirm = function(msg){ window.alert.myAlertText = msg; return true; };");

其中executeScript只使用驱动程序作为JavascriptExecuter。 在确认对话框出现之前必须调用此源。它会立即关闭任何确认对话框并存储文本以供以后使用。


1
我找不到摆脱这个消息的方法 :( 我无法让你的片段工作,我认为这是因为对话框是由Firefox而不是网站创建的。该消息出现是因为我们试图从https提交表单到http。 - nickel715
你为什么在提交用户数据时不使用https?你不想保护它吗? - Jordi Laforge
  1. 这段代码片段应该能够与 Firefox 的警告窗口一起使用。否则,只需单击网站上的按钮即可。为什么这段代码片段没有运行?有任何异常吗?
- Jordi Laforge
  1. 非安全页面是我的本地测试环境。
  2. 代码片段运行了,但什么也没有发生。我还尝试过不使用Selenium:在js控制台中运行以下命令 "window.confirm = function(msg) { return true; }",但消息仍然出现。
- nickel715
当脚本运行时,什么也不会发生。它会在警报出现时引起变化。因此,运行snipplets,然后执行导致警报的访问,然后警报不应该出现。页面应该只是提交。 - Jordi Laforge
@Jordi Laforge,你在想为什么要从https转到http。考虑这个例子:我正在为一个电商网站编写Selenium脚本,但是网站的测试实例不运行在https下。但是第三方实时支付处理器的测试服务器仍然使用https,因此一旦订单完成,它会从https返回到http,触发浏览器警报。这种问题只会在测试期间出现,并且我们只是试图解决它。 - pbgswd

0
chooseOkOnNextConfirmation

对你没用?

chooseOkOnNextConfirmation()

撤销调用chooseCancelOnNextConfirmation的效果。请注意,Selenium覆盖的window.confirm()函数通常会自动返回true,就像用户手动点击了OK一样,因此除非由于某种原因需要在下一个确认之前改变主意,否则您不应该使用此命令。在任何确认之后,Selenium将恢复使用未来确认的默认行为,自动返回true(OK),除非/直到您为每个确认显式调用chooseCancelOnNextConfirmation。

请注意-每次出现确认时,您必须使用相应的getConfirmation进行消耗,否则下一个selenium操作将失败。

chooseCancelOnNextConfirmation也是一种选择


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