【问题标题】:Detect broken SSL or insecure content warning with Selenium, BrowserStack, & Node.js使用 Selenium、BrowserStack 和 Node.js 检测损坏的 SSL 或不安全的内容警告
【发布时间】:2013-08-30 18:46:14
【问题描述】:

我正在尝试使用 Browserstack 的 Selenium 和他们的 Node.js 驱动程序设置一些自动化测试。我想检查通过 HTTPS 访问 URL 时页面是否显示任何不安全的内容警告。

有没有办法在 Selenium 中检测到这一点?如果一个浏览器比另一个更容易,那很好。

【问题讨论】:

  • 此时,我会采取任何方式自动检测到这一点,不需要是硒。

标签: node.js selenium browserstack


【解决方案1】:

以下是使用 Selenium 和其他工具检测此问题的几种不同方法:

  • 遍历所有链接并确保它们都以 https:// 开头(尽管通过 Selenium,这不会检测到复杂的加载内容、XHR、JSONP 和帧间 RPC 请求)

  • Why No Padlock? 上自动运行该工具,这可能不会比上述方法更多

  • 利用Sikuli 截取显示绿色挂锁的浏览器地址栏区域的屏幕截图(在 Chrome 的情况下),如果不存在则失败(在并行测试中使用此功能的警告mentioned here

浏览器中还有mention here的Content Security Policy,它会阻止加载任何不安全的对象,并在遇到时执行对外部URL的回调。

更新:

这些建议的解决方案旨在检测正在加载到页面的任何非安全对象。这应该是断言内容安全的最佳实践。但是,如果您确实需要检测是否正在显示特定浏览器的不安全内容警告消息(也就是测试浏览器与您的网站的软件),那么使用 Sikuli 来匹配可见的存在警告消息或不存在您的页面内容可以胜任。

【讨论】:

    【解决方案2】:

    Firefox 每次遇到混合内容时都会创建一个日志条目,因此您可以在 selenium 中查看日志。示例:

    driver = webdriver.Firefox()
    driver.get("https://googlesamples.github.io/web-fundamentals/fundamentals/security/prevent-mixed-content/simple-example.html")
    
    browser_logs = driver.get_log("browser")
    

    并且,在 browser_logs 中寻找

    {u'timestamp': 1483366797638, u'message': u'Blocked loading mixed active content "http://googlesamples.github.io/web-fundamentals/samples/discovery-and-distribution/avoid-mixed-content/simple-example.js"', u'type': u'', u'level': u'INFO'}
    {u'timestamp': 1483366797644, u'message': u'Blocked loading mixed active content "http://googlesamples.github.io/web-fundamentals/samples/discovery-and-distribution/avoid-mixed-content/simple-example.js"', u'type': u'', u'level': u'INFO'}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-11
      • 2011-05-06
      • 2013-02-18
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 2018-07-14
      • 2020-05-03
      相关资源
      最近更新 更多