Selenium IDE能否有效处理浏览器警报

时间:2011-07-17 12:12:11

标签: selenium-ide

您好我正在使用Seleneium IDE为电子商务网站编写测试脚本,这是在HTTP的测试环境中。我遇到的问题是测试支付网关3D Secure是HTTPS,因此当我使用FireFox时,浏览器会在我从支付网关3D Secure HTTPS返回到站点测试环境时显示安全警告消息。

'虽然此页面已加密,但您输入的信息将通过未加密的连接发送,并且可以由第三方轻松阅读。

您确定要继续发送此信息吗?'

我已经尝试了IDE中的各种命令,用于waitForAlert *和asertAlert *,但是这个javascript警告似乎超过了我使用的任何命令,并且基本上会暂停脚本直到使用手动干预。

我无法在FF中关闭此特定警报,因为它可以从各种论坛中断言,因为关闭它太重要了,我在FF中尝试过:config

我可以明显地关闭3D安全以允许脚本运行,但我希望测试完整的用户场景,而不是适合自动化的测试。

非常感谢您的时间和帮助。

2 个答案:

答案 0 :(得分:4)

我有完全相同的问题:

我使用Selenium网络驱动程序对我的本地http服务器进行测试,该服务器将重定向发送到https服务(3DS以及btw;)。问题不在于证书,而是在https / http之间进行切换的硬编码警告。

根据MacGyver的答案和这个答案Key press in (Ctrl+A) Selenium WebDriver的链接,我对此进行了测试,我可以确认它已关闭“虽然此页面已加密,但您输入的信息将通过未加密的连接发送,并且可以很容易被第三方阅读“对话框:

Alert alert = driver.switchTo().alert();
alert.accept();

另一个解决方案,似乎工作正常,但你会得到最新的Selenium版本的UnhandledAlertException(例如2.25.0):

Actions a = new Actions(driver);
a.sendKeys(Keys.ENTER).perform();

答案 1 :(得分:0)

选项#1:

最简单的方法是删除配置文件的安全选项中的选项: http://forums.mozillazine.org/viewtopic.php?f=38&t=665552

选项#2:

不确定这是否适用于不受信任的证书或您的安全警告,但论坛帖子似乎适合。它要求您使用Selenium RC Server。

此处存储的配置文件适用于Firefox:%APPDATA%\ Mozilla \ Firefox

可以修改个人资料:http://www.dennisplucinik.com/blog/2011/02/04/how-to-install-run-multiple-firefox-versions-in-windows-simultaneously/

请点击以下链接中的代码: http://old.nabble.com/Security-Warning-on-final-page,-how-to-remove-td22907376.html

如果使用Firefox 3,请参阅以下帖子https://developer.mozilla.org/En/Cert_override.txt

我用来通过此安全弹出窗口的解决方案仅适用于Firefox 3浏览器,可能更像是修复而不是修复,但它可以正常工作。

  1. 运行硒测试
  2. 弹出
  3. 提示时选择“永久接受此证书”
  4. 单击“确定”按钮(此后可能需要暂停,因为我们需要打开资源管理器才能找到文件)
  5. 打开Windows资源管理器并导航至=> “C:\用户\ XXXXXXXX \应用程序数据\本地\ TEMP \ customProfileDirxxxx”
  6. 这是由Firefox创建的一个临时配置文件,其中包含一个名为“cert_override.txt”的文件
  7. 将“cert_override.txt”复制到临时目录
  8. 停止使用selenium服务器。
  9. 使用WinRar从“c:\ selenium-remote-control-xxx \ selenium-server-xxx”打开“selenium-server.jar”文件
  10. 将“cert_override.txt”文件拖到WinRar中的“selenium-server.jar \ customProfileDirCUSTFFCHROME”文件夹中(不要删除或编辑.jar文件中的任何内容!!!!!)
  11. 关闭WinRar,启动selenium并再次尝试:)