2017-04-10 54 views
0

量角器+黄瓜 - 元件即使元件不可见是可见

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!") })); 
 
    });

Protractor - element is not visible issue

我测试随机在上述步骤失败。对于上面的代码,在控制台窗口中量角器打印'元素是可见的'。但是如果我在元素上执行单击事件,它会抛出元素不可见的异常。

更新

问题的回答here

+2

您好!请在问题中发布您的代码,而不是链接。图片链接变坏,一些网络(如我的)阻止它们。幸运的是,我有一部手机,我可以在此查看:) – mrfreester

回答

0

你的元素存在,但它可能是不可见的。

试试这个:

return browser.wait(wagLoginPage.loginPage.signIn.isDisplayed().then(function (visible){ 
    //Your stuff 
} 

注意,我使用isDisplayed()isPresent()

isPresent()在检查元素是否在页面上时有用,但可能可见或不可见。

isDisplayed()在检查页面上是否可见元素时非常有用。

+0

使用isDisplayed()后,只有在可见时才点击按钮。但是如果按钮不可见,断言在else部分失败并且以下面的错误突然停止测试执行[15:41:58] E/launcher - 期望虚假为真 [15:41:58] E/launcher - AssertionError:expected false to be true。[15:41:58] E/launcher - 进程退出,错误代码199 –

+0

是否存在这个问题和[this]之间的关系(http://stackoverflow.com/questions/43336247/量角器黄瓜如果断言失败测试执行停止突然)问题? – wswebcreation

+0

@wswebcreation在我看来,这是一个类似的项目,但一个不同的问题 – mrfreester