我有一个包含社交登录方案(Facebook 和 twitter)的网络应用程序。我目前正在通过 NPM 模块browser-perf设置一些 selenium 测试,我注意到有一个preScript可以运行来执行身份验证等。这是文档给出的示例脚本:
{
preScript: function(browser) {
return function(browser) {
return browser.get(cfg.page).then(function() {
console.log('Filling in Username');
return browser.elementByCssSelector('.UsernameClass')
}).then(function(el) {
return el.type('Username for site');
}).then(function() {
console.log('Filling in Password');
return browser.elementByCssSelector('.PasswordFieldClass');
}).then(function(el) {
return el.type(cfg.password.val);
}).then(function() {
return browser.elementByCssSelector('.SubmitButton');
}).then(function(el) {
console.log('Clicking submit');
return el.click();
}).then(function() {
return browser.sleep(5000);
});
}
}
}
我在考虑如何将它应用到我的网络应用程序中,但唯一的问题是,当单击 Facebook 或 Twitter 登录按钮时,会弹出一个新窗口,并且控制权会从原始脚本中移除。在正常的用例中,用户会填写他们的信息,点击登录,然后控制权将被返回。
有没有办法通过自动化硒测试来处理这个问题?我可以以某种方式获取对弹出窗口的引用吗?