量角器:测试报告不一致?

Protractor: inconsistent test reports?

正在测试 angular 应用程序,测试有时通过有时失败...

我的测试用例是这样的:

it('test-1: should has main button', function () {
    expect(page.demoButton).not.toBeUndefined();
});

it('test-2: should open modal on click secondary button', function () {
    page.demoButton.click().then(function () {
        page.SecondaryButton.click().then(function() {
            expect(page.Modal).not.toBeUndefined();
        });
    });
});

it('test-3: should open modal with correct text', function () {
    page.demoButton.click().then(function () {
        page.SecondaryButton.click().then(function() {
            expect(page.Modal.text.getText()).toEqual('Are you sure to cancel 
this?');
        });
    });
});

如果我 运行 测试,有时测试会通过,有时其中一些会失败.. 大多数时候的错误类似于:使用定位器未找到元素:By.cssSelector(".myButton")。或无法读取未定义的

的 属性 'getText'

提前致谢!

我通过使用解决了这个问题:

browser.waitForAngular(); 

据我所知,问题发生在 getText 和点击事件上,所以:

it('test-2: should open modal on click secondary button', function () {
    page.demoButton.click().then(function () {
        browser.waitForAngular();
        page.SecondaryButton.click().then(function() {
            browser.waitForAngular();
            expect(page.Modal.text.getText()).toEqual('Are you sure to cancel 
            this?');
        });
    });
});

是解决方案。