我知道这个问题已经问过几次了,尽管我已经仔细研究了这些问题,但我不确定如何解决这个问题。

我正在检查文本“ EUR”是否包含在称为“ currency”的div中。以前这对我有用,但是我已经开始使用lint了,并且遇到了很多这类错误。

这是我得到的错误
Failed: text.indexOf(...).isDisplayed is not a function

这是我的代码



checkBuyerCurrency (text, buyerCurrency) {
    let currencyPromise = new Promise(function (resolve, reject) {
    const commonUtils = new CommonUtils();
    var EC = protractor.ExpectedConditions;
    browser.wait(EC.visibilityOf(element(by.className("currency")),     4000));
    var checkCurrency = element(by.className("balances"));
      checkCurrency.getText().then(function (text) {
           expect (text.indexOf("EUR").isDisplayed()).toBe(true);
           console.log("EUR only buyer");
      });
    });
  }





是否需要将text设置为变量或将其转换为字符串?由于我使用Expect语句的方式,我不确定如何执行此操作

谢谢你的帮助

最佳答案

“ isDisplayed()”在Protractor API中是有效的函数,但其​​工作性质类似于,应将其应用于Web元素以检查元素是否在UI上显示。

但是,您将其应用于数字类型的文本,这不是isDisplayed()的预期用法。如果您的要求失败了,但没有文本,请执行以下操作。

checkCurrency.getText().then(function (text) {

       expect (text.indexOf("EUR")).toBeGreaterTha(-1);
  });


要么

 checkCurrency.getText().then(function (text) {
   if(text.indexOf("EUR")>-1){
    //do what do you want
    }else{
      expect (false).toBe(true);//it will make test case fail is EUR is not
                                //present
      }
  });

10-06 15:40