【问题标题】:Aurelia e2e: text.indexOf() not correctly comparing string to that contained in a divAurelia e2e:text.indexOf() 未正确将字符串与 div 中包含的字符串进行比较
【发布时间】:2017-05-30 21:03:59
【问题描述】:

我正在尝试检查 div 标头中包含的文本是否与我在 text.indexOf() 函数中的内容匹配,如果匹配,它将在控制台上打印“true”,如果不匹配,则将打印“假”。 我不想检查文本是否完全匹配,我只想查看 Div 中是否包含“EUR”。 这是我的页面对象文件中的代码

this.checkIfEur = function(eur) {
     var checkCurrency = element(by.className("m-l-sm"));
        checkCurrency.getText().then(function (text) {
            if (text.indexOf("EUR">= 0))   {
              console.log("true");
            }
            else if (text.indexOf("EUR"<= 0)){
              console.log("false");
            }
          });
};
<div class="currencies">
               <span>Opening Currency</span>
               <span class="m-l-sm">
               <b>EUR 1,000</b>
               </span><span class="m-l-sm">`
               <b>GBP 5,000</b>
               </span><!--anchor-->
        </div>

问题是,如果我用zzzzzzz 替换EUR,控制台仍然会打印'true'。我想被接受的文本似乎并不重要,它总是会打印出来。

我可能完全错了,感谢任何帮助

【问题讨论】:

    标签: node.js protractor automated-tests aurelia e2e-testing


    【解决方案1】:

    而不是

    if (text.indexOf("EUR">= 0))
    

    应该是(注意关闭父母的位置)

    if (text.indexOf("EUR")>= 0)
    

    【讨论】:

    • 感谢您的帮助!
    【解决方案2】:

    更具体地说,如果您想检查“EUR”是否在字符串中并且您正在使用它

    if (text.indexOf("EUR") >= 0)   {
        console.log("true");
    } else if (text.indexOf("EUR") <= 0){
        console.log("false");
    }
    

    你可以更好地使用它

    if (text.indexOf("EUR") > -1)   {
        console.log("true");
    } else{
        console.log("false");
    }
    

    或者如果你只想记录结果,你可以这样做

    console.log("Found EUR in string:", text.indexOf("EUR") > -1);
    

    ,另见indexOf的例子

    【讨论】:

    • 非常感谢您的帮助,很高兴知道我在正确的轨道上,令人沮丧的是它是由这么小的东西引起的!
    猜你喜欢
    • 2017-02-20
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多