我正在使用带有ADFS的.net core 2.0应用程序进行身份验证。当我从linux访问Web应用程序时,我需要在办公室网络上进行额外的身份验证。在办公室外部网络或办公设备中没有问到弹出窗口。
我需要删除其他弹出窗口或使用Nightwatch自动化测试输入用户凭据。
答案 0 :(得分:0)
不幸的是,Nightwatch和底层Selenium都不支持与此弹出窗口的交互,但您可以做的是通过URL传递用户名和密码:
client
.url('https://username:password@example.com')
<强>更新强>
如果您打开第一个网址的网址不需要使用身份验证(并且看起来就是这种情况),则上述解决方案将无效。
您可以做的是在运行实际测试之前通过访问任何需要auth的URL来预先验证浏览器,因此将为此浏览器会话中的每个下一个请求添加auth标头。您也可以使用测试套件的before
钩子:
module.exports = {
before: function(client, done) {
client.url('https://username:password@someurl.com/auth').perform(function() {
done();
});
},
...
};
答案 1 :(得分:0)
另一种方法是创建已登录的自定义浏览器配置文件。
关于如何传递自定义firefox配置文件的有用讨论: https://github.com/nightwatchjs/nightwatch/issues/1543