我使用带有ADFS的.net核心2.0应用程序进行身份验证。当我从linux访问web app时,我在office网络上得到了额外的身份验证要求。在外部办公网络或办公设备中未提示弹出。
我需要删除额外的弹出窗口或输入Nightwatch自动化测试的用户凭据。
发布于 2018-02-08 19:38:36
不幸的是,Nightwatch和底层Selenium都不支持与此弹出窗口的交互,但您可以做的是通过URL传递用户名和密码:
client
.url('https://username:password@example.com')
更新:
如果您第一次打开的URL不需要身份验证(看起来就是您的情况),上面的解决方案将不起作用。
您可以做的是,通过访问任何需要auth的URL,在运行实际测试之前对浏览器进行预身份验证,因此将为此浏览器会话中的每个下一个请求添加auth头。你可以使用你的测试套件的before
钩子:
module.exports = {
before: function(client, done) {
client.url('https://username:password@someurl.com/auth').perform(function() {
done();
});
},
...
};
发布于 2018-02-08 22:18:35
另一种方法是创建已登录的自定义浏览器配置文件。
关于如何传递自定义firefox配置文件的有用讨论:https://github.com/nightwatchjs/nightwatch/issues/1543
https://stackoverflow.com/questions/48683328
复制相似问题