我在IE中遇到了授权。在我的情况下:我有adfs授权,将我从我的网站重定向到adfs,再到我的网站再次重定向我。
我试过这种方式:
browser.switchTo().alert().sendKeys("Text");
但这仅适用于第一个输入字段。
对于第二个输入字段:
browser.switchTo().alert().sendKeys(protractor.Key.TAB);
司机失去了焦点。
我尝试了Autoit的第二种方式:
helper.loginIE = function(name, password) {
let formsAuthenticationArea = element.all(by.className(element)).get(0);
formsAuthenticationArea.click();
browser.call(function () {
au.Init()
au.WinWaitActive("Windows Security", "", 3);
au.Send(name);
au.Send("{TAB}");
au.Send(password);
au.Send("{ENTER}");
})
};
Autoit的情况与首次单击元素异步工作。
node.js - 7.8.1;
量角器 - 5.2.2;
selenium-webdriwer - 3.8.1;
IEDriver - 3.7
IE11
capabilities: {
'browserName': 'internet explorer',
'ignoreProtectedModeSettings': true,
'disable-popup-blocking': true,
'enablePersistentHover': true,
'nativeEvents': false,
'unexpectedAlertBehaviour': 'ignore',
'acceptSslCerts': true,
'trustAllSSLCertificates': true
}
Windows安全提示显示:
答案 0 :(得分:0)
您的身份验证对话框不是浏览器对话框,因此量角器无法在本机自动启动,但您可以使用nodejs调用外部工具来自动启动它。
选项1)使用java.awt.Robot类 Robot是JDK中的内置类,因此您无需其他库来实现此解决方案。
一般步骤如下:
process
或child-process
或其他模块来执行Java CMD
运行java类缺点:此解决方案只能在浏览器在本地打开时使用(使用directConnet或seleniumAddress是localhost)。因为机器人无法操作远程机器的桌面。
要打破Robot类的local
限制,一种方法是将上面的类文件从脚本机器传输到远程浏览器机器。另一种可能的方法是使用Remote Robot,我以前从未尝试过在Google上搜索。