量角器:让测试用例等到认证完成

时间:2018-05-11 11:31:00

标签: angular promise jasmine protractor e2e-testing

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

我一直在关注git / stackoverflow / etc,但可以找到解决此问题的任何帮助。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情: -

1)导航到主页 2)页面将打开并重新路由到登录页面 3)您可以将目标URL(即登录页面URL)发送到函数以等待重定向。 4)重定向后设置同步= false 5)完成登录过程 6)诱导硒webdriver等待 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);

};

答案 1 :(得分:0)

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

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