如何检查protractor.ElementFinder何时为null

时间:2016-12-04 22:04:44

标签: typescript protractor

我有类似以下的实现:

const arrayOfElements: protractor.ElementArrayFinder = $$('firstName');
returnElementMatchingCriteria.then( do something with the element..


public returnElementMatchingCriteria(criteria: string): Promise<protractor.ElementFinder> {
    arrayOfElements.each(element)
         if (element.text() === criteria) {
             return element

如果没有匹配的元素,则将该函数计算为null。在继续下一行之前,如何检查返回值是否为空?

我尝试使用与if(returnedValue === null)类似的东西,但是字符串文字不能应用于类型ElementFinder。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我认为您打算使用filter()代替each()并使用count()来检查结果:

var arrayOfElements = $$('firstName');
var result = arrayOfElements.filter(function (elm) {
    return elm.getText().then(function (text) { 
        return text === criteria;
    });
});
expect(result.count()).toBeGreaterThan(0);

// do something with result - e.g. result.first() to get the first matching element

如果没有匹配的元素,result.count()将评估为0。