量角器:If语句,如果元素包含某些文本

Edm*_*ond 2 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')
}
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息: .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
       }
});
Run Code Online (Sandbox Code Playgroud)

FCi*_*Cin 5

.getText返回诺言,这意味着您必须使用解决.then

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

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

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