如何摆脱Selenium / Nightwatch.js / Browserstack

时间:2015-12-14 01:47:26

标签: selenium end-to-end browserstack

当在browserstack中针对IE运行测试时,似乎IE正在提出安全异常消息:

enter image description here

这是因为正在调用的后端api正在使用不受信任的自签名证书(对于CI,它需要像这样,因为每次CI创建后端时api都有不同的URL)

运行这个自动化测试需要做的是对话框需要被接受(或者根本不会出现) - 但是我没有看到通过nightwatch框架做到这一点的任何方式。

我尝试过使用browser.setValue('button', [browser.Keys.LEFT_ARROW]);点击左箭头 并且还尝试单击带有“是”值的按钮,但似乎没有任何效果。

我还在我的配置文件设置中设置了acceptSslCerts:

    "ci_ie": {
      "launch_url" : "http://hub.browserstack.com",
      "selenium_port"  : 80,
      "selenium_host"  : "hub.browserstack.com",
      "silent": true,
      "screenshots" : {
        "enabled" : false,
        "path" : ""
      },
      "desiredCapabilities": {
        "browserName": "ie",
        "javascriptEnabled": true,
        "acceptSslCerts": true,
        "ignoreProtectedModeSettings": true,
        "browser_version": "10",
        "os_version": "7",
        "os": "windows"
      }
    }

非常感谢任何关于如何解决这个问题的想法。

2 个答案:

答案 0 :(得分:2)

正确,你无法通过selenium webdriver 控制此弹出窗口,它超出了它的范围/范围。

相反,您需要首先阻止它显示:

In case of IE,您应该将acceptSslCerts所需的功能设置为" true":

"desiredCapabilities" : {
  "browserName" : "internet explorer",
  "javascriptEnabled" : true,
  "acceptSslCerts" : true,
}

您可能还需要将ignoreProtectedModeSettings设置为" true":

"desiredCapabilities" : {
  "browserName" : "internet explorer",
  "javascriptEnabled" : true,
  "acceptSslCerts" : true,
  "ignoreProtectedModeSettings": true
}

还有this workaround(您可能需要将acceptSslCerts设置为" false"以便其工作)。

答案 1 :(得分:2)

我通过添加:

来修复此问题

"unexpectedAlertBehaviour": "accept"

到我的nightwatch配置中的desiredCapabilities部分。

我认为这可能是由于acceptSslCerts因XHR请求而被忽略。