diff --git a/lib/element.ts b/lib/element.ts index 2da7641a5..c66600eed 100644 --- a/lib/element.ts +++ b/lib/element.ts @@ -229,7 +229,9 @@ export class ElementArrayFinder extends WebdriverWebElement { * array * of element that satisfy the filter function. */ - filter(filterFn: (element: ElementFinder, index?: number) => any): ElementArrayFinder { + filter( + filterFn: (element: ElementFinder, index?: number) => boolean | + wdpromise.Promise): ElementArrayFinder { let getWebElements = (): wdpromise.Promise => { return this.getWebElements().then((parentWebElements: WebElement[]) => { let list = parentWebElements.map((parentWebElement: WebElement, index: number) => { @@ -539,7 +541,7 @@ export class ElementArrayFinder extends WebdriverWebElement { * an array of ElementFinders represented by the ElementArrayFinder. */ then( - fn?: (value: ElementFinder[]) => T | wdpromise.IThenable, + fn?: (value: ElementFinder[]|any[]) => T | wdpromise.IThenable, errorFn?: (error: any) => any): wdpromise.Promise { if (this.actionResults_) { return this.actionResults_.then(fn, errorFn); @@ -636,8 +638,9 @@ export class ElementArrayFinder extends WebdriverWebElement { * @returns {!webdriver.promise.Promise} A promise that resolves to an array * of values returned by the map function. */ - map(mapFn: (elementFinder?: ElementFinder, index?: number) => T): wdpromise.Promise { - return this.asElementFinders_().then((arr: ElementFinder[]) => { + map(mapFn: (elementFinder?: ElementFinder, index?: number) => T | any): + wdpromise.Promise { + return this.asElementFinders_().then((arr: ElementFinder[]) => { let list = arr.map((elementFinder?: ElementFinder, index?: number) => { let mapResult = mapFn(elementFinder, index); // All nested arrays and objects will also be fully resolved.