当在browserstack中针对IE运行测试时,似乎IE正在提出安全异常消息:
这是因为正在调用的后端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"
}
}
非常感谢任何关于如何解决这个问题的想法。
答案 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请求而被忽略。