如何使用 Selenium / Nightwatch.js / Browserstack 摆脱 IE 安全对话框
How to get rid of IE security dialog with Selenium / Nightwatch.js / Browserstack
当 运行ning 在 browserstack 中针对 IE 进行测试时,IE 似乎出现了一条安全异常消息:
这是因为正在调用的后端 api 使用的是不受信任的自签名证书(CI 需要像这样,因为 api每次 CI 创建后端时都有不同的 url)
此自动测试 运行 需要发生的事情是对话需要被接受(或根本不出现)——但我看不到通过 nightwatch 框架执行此操作的任何方式。
我尝试过使用 browser.setValue('button', [browser.Keys.LEFT_ARROW]);
单击向左箭头
并尝试单击具有 'Yes' 值的按钮,但似乎没有任何效果。
我还在我的 ie 配置文件设置中设置了 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"
}
}
任何有关如何解决此问题的想法都将不胜感激。
正确,您无法通过 selenium webdriver 控制此弹出窗口,它不在 scope/reach 范围内。
相反,您需要首先阻止它显示:
- How to deal with certificates using Selenium?
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" 才能生效)。
我通过添加解决了这个问题:
"unexpectedAlertBehaviour": "accept"
到我的守夜人配置中的 desiredCapabilities
部分。
我想这可能是因为 acceptSslCerts
XHR 请求被忽略了。
当 运行ning 在 browserstack 中针对 IE 进行测试时,IE 似乎出现了一条安全异常消息:
这是因为正在调用的后端 api 使用的是不受信任的自签名证书(CI 需要像这样,因为 api每次 CI 创建后端时都有不同的 url)
此自动测试 运行 需要发生的事情是对话需要被接受(或根本不出现)——但我看不到通过 nightwatch 框架执行此操作的任何方式。
我尝试过使用 browser.setValue('button', [browser.Keys.LEFT_ARROW]);
单击向左箭头
并尝试单击具有 'Yes' 值的按钮,但似乎没有任何效果。
我还在我的 ie 配置文件设置中设置了 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"
}
}
任何有关如何解决此问题的想法都将不胜感激。
正确,您无法通过 selenium webdriver 控制此弹出窗口,它不在 scope/reach 范围内。
相反,您需要首先阻止它显示:
- How to deal with certificates using Selenium?
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" 才能生效)。
我通过添加解决了这个问题:
"unexpectedAlertBehaviour": "accept"
到我的守夜人配置中的 desiredCapabilities
部分。
我想这可能是因为 acceptSslCerts
XHR 请求被忽略了。