我正在使用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);
答案 0 :(得分:2)
问题是 - 你正在等待 - presenceOf()
只会检查DOM中元素的存在,因此无论你的弹出窗口是否可见,它都将始终返回true
。
您需要等待visibilityOf()
- browser.wait(EC.visibilityOf(shoppingCartPreview.popUpWindow), 5000)