量角器:如果Statement if元素包含某些文本

时间:2017-07-13 09:23:00

标签: javascript protractor aurelia

这看起来相当简单,但我不能让它运行。我基本上想检查'div class = balances'是否包含'EUR'文本,如果有,我想做其他检查。它在我使用expect语句时有效: expect(element(by.css('balances')).getText()).toContain('EUR'); 这将通过 但如果我把它改为:

if (element(by.css('balances')).getText()).toContain('EUR') {
  console.log('true')
}

我收到一条错误消息:.toContain is not defined

我可以在这里使用什么而不是.toContain? 感谢

更新,我已经尝试但仍然没有快乐:

var bal =element(by.css('balances')).getText().then(function(text){
        if(text.contains('EUR')){
            //do something
        }
       else{
          //do something else
       }
});

1 个答案:

答案 0 :(得分:5)

.getText会返回promise,这意味着您必须使用.then解析它。

您想要获取文本,解决承诺,然后进行比较:

element(by.css('balances')).getText().then(function(actualText) {
    if(actualText.indexOf('EUR') !== -1) {
        // Yup, I have EUR in me.
    }
});

if语句中,我们使用indexOf检查字符串是否包含指定的子字符串。它返回出现次数,如果未找到,则返回-1