量角器不等待angular2加载

时间:2017-09-25 11:10:58

标签: angular protractor

量角器版本:5.1.2
节点版本:6.9.0
角度版本:2.4.10

OnPrepare我正在做的功能browser.get('/')。在此之后我正在it进行登录 第一个问题是它抛出错误,因为没有调用异步函数。在进行了一次失败的研究后,我添加了browser.sleep(500),然后上面停止并执行了登录it案例。

之后我必须单击登录页面上的按钮,然后导航到另一个页面并单击另一个按钮。这也说明找不到定位器的元素。但是如果我添加{ {1}}或browser.waitForAngular(),然后它开始工作。我不能每次都明确地添加它。此外,当我使用量角器(版本:1.3)时,它从未发生过。

所以我认为问题是量角器不是在等待角度同步 任何解决方案都表示赞赏。

量角器配置文件

browser.sleep()

2 个答案:

答案 0 :(得分:0)

在conf.js文件和exports.config标记内尝试以下代码: -

browser.ignoreSynchronization = true;

在登录名“it”中使用以下代码: -

browser.waitForAngularEnabled(false);

在其他着陆页内使用此代码: -

browser.waitForAngularEnabled(true);

答案 1 :(得分:0)

在执行测试之前,量角器不一定等待onPrepare完全完成。

但是,您可以选择在promise内返回onPrepare,然后Protractor会等待继续执行。

查看详情in this question herecorresponding Protractor documentation here

对于我的情况,我在onPrepare函数中添加了Login-Steps(填充用户名和密码,单击Login),该函数也创建了promises,因此触发Protractor测试执行,等待onPrepare-Promises得到解决。

onPrepare: function () {
    var login_page = require('../page/login_page.js');
    browser.driver.manage().window().maximize();
    browser.get('/');
    login_page.enterUserName('user');
    login_page.enterPassword('password');
    login_page.clickLogin();
}