量角器:让测试用例等到身份验证完成



我正在开发一个应用程序,我使用 browser.get('app url'( 加载一个页面,然后它重新路由到某个不同的 URL 进行身份验证,提示输入凭据然后转到主页(应用程序 URL(,而页面完成身份验证测试用例开始运行。问题是一些初始测试用例失败并显示此错误"等待量角器与页面同步时出错:"angularJS可测试性和角度可测试性都是未定义的。 这可能是因为这是一个非角度页面,或者因为你的测试涉及客户端导航,这可能会干扰量角器的引导。

我一直在git/stackoverflow/等周围寻找很多,但可以找到解决此问题的任何帮助。

这里有两个试用

  • 如果您一直在使用异步/等待方法进行量角器测试,await 关键字可以帮助您的代码行等待上一步完成。

  • 如果测试中的应用程序完全不是角度的,请在量角器配置文件中标记"browser.ignoreSync = true"。

谢谢

尝试这样的事情:-

1( 导航到主页 2( 页面将打开并重新路由到登录页面 3(您可以将目标网址(即登录页面网址(发送到函数以等待重定向。 4( 一旦重定向设置同步 = 假 5( 完成登录过程 6(诱导硒网络驱动程序等待 7( 设置同步 = 真

下面是一个示例函数,用于检查 URL 是否已更改。函数中内置了一个等待,将有助于同步调用

waitForURLToChange(target, time) {
console.log(target);
let timeout = time
return browser.driver.wait(function () {
return browser.driver.getCurrentUrl().then(function (actualUrl) {
console.log(actualUrl.indexOf(target));        
return actualUrl.indexOf(target) > -1;     
});
}, timeout);

};

对我来说,缺少的东西是 page.navigateTo(( 在 beforeEach 中,添加它消除了问题-

import { AppPage } from './app.po';
beforeEach(async () => {
page = new AppPage();
page.navigateTo();
});

最新更新