量角器等待 ForAngular 或 .count() 不起作用



我有一个烦人的问题,count()更改后没有更新。我的测试设置了一些输入值,然后运行以下命令:

$$('.label-entry').count().then(beforeCount => {
    btnSaveLabel.click();
    browser.waitForAngular();
    $$('.label-entry').count().then(count => expect(count).toEqual(beforeCount + 1));
});

测试应该单击进行 API 调用的保存按钮,等待该调用结束,并检查divs 的 # 是否增加了 1(手动测试时会增加(。不知何故,测试设法失败了。对count()的第一次调用工作正常,但第二次调用无法正常工作。我在这里错过了什么?

<div class="label-entry" *ngFor="let labelEntry of labelEntries">

嗯......也许你不需要你的第二个then(),因为expect应该已经解决了你的承诺。

你能试试这个吗:

$$('.label-entry').count().then(beforeCount => {
    btnSaveLabel.click();
    browser.waitForAngular();
    expect($$('.label-entry').count()).toEqual(beforeCount + 1);
});

或者最终这个:

$$('.label-entry').count().then(beforeCount => {
    btnSaveLabel.click();
    browser.waitForAngular();
    //wrap it in a browser.wait() to see, if you get the result before timeout
    browser.wait(expect($$('.label-entry').count()).toEqual(beforeCount + 1), 5000);
});

或者最终这个(虽然是实验性的(:

$$('.label-entry').count().then(beforeCount => {
    btnSaveLabel.click();
    browser.waitForAngular();
    browser.wait(($$('.label-entry').count() > beforeCount), 5000);
    expect($$('.label-entry').count()).toEqual(beforeCount + 1);
});

最新更新