检查是否显示元素

时间:2018-03-23 11:19:58

标签: javascript protractor

我试图检查某个元素是否可见但是我收到以下错误:

  

失败:找不到使用定位器找到的元素:按(css选择器,* [id ="按钮 - 复制"])

虽然这个元素不应该是可见的,但不是进入我的if语句,它只是退出该错误。

任何人都可以解释为什么会这样吗?

Total_Jobs  Total_Value Fiver_Value Payment_Due
18          617         90          527

2 个答案:

答案 0 :(得分:1)

isDisplayed()也检查Presence是一种常见的误解。它没有

在检查元素是否显示之前,您必须先检查元素是否存在于DOM 上;您可以使用isPresent()

执行此操作

一旦确定了它的存在,请继续进行isDisplayed()检查。

喜欢这个

element(by.id('button--copy')).isPresent().then(function (isPresent) {
    if (isPresent) {
        element(by.id('button--copy')).isDisplayed().then(function (isDisplayed) {
            if (isDisplayed) {
                //Visible
            }
            else {
                //Not visible
            }
        });
    }
    else{
        //Not visible
    }
});

如果你想避免一些重复,你可以将它提取到一个方便的功能。

答案 1 :(得分:-1)

最简单的方法是:

var foo = element(by.id('foo')).isDisplayed();
if (isVisible) 
{
     //do stuff
}
else{
    //do stuff
}
相关问题