this.When(/^the user clicks on login button$/, function () {
return browser.wait(wagLoginPage.loginPage.signIn.isPresent().then(function (visible) {
if(visible){
console.log("element is visible !!!!!!!");
wagLoginPage.loginPage.signIn.click().then(function(){
expect(visible).to.be.true;
});
}
else{
expect(visible).to.be.true;
}
}, function () { chai.assert.isFalse(true, "SingIn is not visible!") }));
});

我的测试在上述步骤中随机失败。对于上面的代码,在控制台窗口中,量角器打印'元素是可见的。但是如果我对元素执行click事件,则抛出元素不可见异常。
更新
回答问题here
答案 0 :(得分:1)
您的元素存在,但可能不可见。
试试这个:
return browser.wait(wagLoginPage.loginPage.signIn.isDisplayed().then(function (visible){
//Your stuff
}
注意,我使用 isDisplayed()与 isPresent()。
isPresent()非常有用,如果您正在检查某个元素是否在页面上,但可能显示也可能不显示。
isDisplayed()在您检查网页上是否有元素时非常有用。