我正在尝试使用 Browserstack 的 Selenium 及其 Node.js 驱动程序设置一些自动化测试。我想检查通过 HTTPS 访问 URL 时页面是否显示任何不安全内容警告。
有没有办法在 Selenium 中检测到这一点?如果一种浏览器比另一种浏览器更容易,那很好。
最佳答案
以下是使用 Selenium 和其他工具检测此问题的几种不同方法:
遍历所有链接并确保它们全部以
https://
开头(尽管通过 Selenium,这不会检测复杂的加载内容、XHR、JSONP 和帧间 RPC 请求)在 Why No Padlock? 上自动运行该工具,这可能不会比上面的方法做更多的事情
利用Sikuli截取浏览器地址栏显示绿色挂锁的区域(对于 Chrome),如果不存在则失败(在并行测试中使用此警告 mentioned here
还有mention here浏览器中的内容安全策略,这将阻止加载任何非安全对象并在遇到时执行对外部 URL 的回调。
更新:
这些提议的解决方案旨在检测加载到页面的任何非安全对象。这应该是断言内容安全的最佳实践。但是,如果您确实需要检测是否显示特定浏览器的不安全内容警告消息(又名,软件测试浏览器与您的网站),那么使用 Sikuli 来匹配可见的存在警告消息或页面不存在的警告消息内容可以完成这项工作。
关于node.js - 使用 Selenium、BrowserStack 和 Node.js 检测损坏的 SSL 或不安全内容警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18539599/