量角器:弹出元素的验证随机失败
Protractor: verification of pop up elements randomly fails
我正在使用 Protractor 验证并点击 Angular 页面上弹出 window 的元素。问题是验证随机失败。
我的规范文件:
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();
});
});
正如所写,问题是对于所有的验证,我得到的都是虚假的而不是真实的。我做错了什么?
我什至尝试了以下但没有成功:
// 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);
问题是 - 你正在等待 - presenceOf()
它只检查 DOM 中元素的存在,因此它总是 return true
你是否弹窗是否可见。
你需要像这样利用 visibilityOf()
- browser.wait(EC.visibilityOf(shoppingCartPreview.popUpWindow), 5000)
我正在使用 Protractor 验证并点击 Angular 页面上弹出 window 的元素。问题是验证随机失败。
我的规范文件:
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();
});
});
正如所写,问题是对于所有的验证,我得到的都是虚假的而不是真实的。我做错了什么?
我什至尝试了以下但没有成功:
// 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);
问题是 - 你正在等待 - presenceOf()
它只检查 DOM 中元素的存在,因此它总是 return true
你是否弹窗是否可见。
你需要像这样利用 visibilityOf()
- browser.wait(EC.visibilityOf(shoppingCartPreview.popUpWindow), 5000)