我知道这个问题已经问过几次了,尽管我已经仔细研究了这些问题,但我不确定如何解决这个问题。
我正在检查文本“ 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
}
});