量角器:弹出元素的验证随机失败

时间:2017-03-13 08:58:39

标签: angularjs popup protractor verify

我正在使用Protractor验证并点击Angular页面上弹出窗口的元素。问题是验证失败了。

我的spec文件:

describe('...
    it('...
        // initialize page object
        var home = new homePage();

        // hover over the shopping cart icon
        browser.actions().mouseMove(home.shoppingCartLink).perform();

        // pause browser for 4 sec
        browser.sleep(4000);

        // initialize page object
        var shoppingCartPreview = new shoppingCartPage();

        // hover over the shopping cart preview window
        browser.actions().mouseMove(shoppingCartPreview.window).perform();

        // verify elements are displayed
        expect(shoppingCartPreview.shopName.isDisplayed()).toBeTruthy();
        expect(shoppingCartPreview.price.isDisplayed()).toBeTruthy();
        expect(shoppingCartPreview.delete.isDisplayed()).toBeTruthy();

        // click on "Checkout" button
        shoppingCartPreview.checkoutButton.click();
    });
});

作为wtritten,问题在于,对于所有的验证,我得到的是假的而不是真实的。我做错了什么?

我甚至尝试了以下但没有成功:

// waiting for elements to be visible
browser.wait(EC.presenceOf(shoppingCartPreview.popUpWindow),10000);
browser.wait(EC.presenceOf(shoppingCartPreview.shopName),10000);
browser.wait(EC.presenceOf(shoppingCartPreview.price),10000);
browser.wait(EC.presenceOf(shoppingCartPreview.delete),10000);

1 个答案:

答案 0 :(得分:2)

问题是 - 你正在等待 - presenceOf()只会检查DOM中元素的存在,因此无论你的弹出窗口是否可见,它都将始终返回true

您需要等待visibilityOf() - browser.wait(EC.visibilityOf(shoppingCartPreview.popUpWindow), 5000)