我有类似以下的实现:
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。
非常感谢任何帮助。
答案 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。