我知道有几次曾经问过这个问题,即使我已经查看了这些问题,我也不确定如何解决这个问题。
我正在检查文字" 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
语句
感谢您的帮助
答案 0 :(得分:1)
“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
}
});