diff --git a/src/frames.ts b/src/frames.ts index 90598143e3..3597961b95 100644 --- a/src/frames.ts +++ b/src/frames.ts @@ -732,10 +732,10 @@ export class Frame { return this._scheduleRerunnableTask(task, 'main', options.timeout); } - async $wait(selector: string, pageFunction: Function | string, options?: types.WaitForFunctionOptions, ...args: any[]): Promise { + $wait: types.$Wait = async (selector, pageFunction, options, ...args) => { options = { timeout: this._page._timeoutSettings.timeout(), ...(options || {}) }; const task = dom.waitForFunctionTask(selector, pageFunction, options, ...args); - return this._scheduleRerunnableTask(task, 'main', options.timeout); + return this._scheduleRerunnableTask(task, 'main', options.timeout) as any; } async title(): Promise { diff --git a/src/page.ts b/src/page.ts index 7ba29e8d8c..a014be026d 100644 --- a/src/page.ts +++ b/src/page.ts @@ -503,8 +503,8 @@ export class Page extends platform.EventEmitter { return this.mainFrame().waitForFunction(pageFunction, options, ...args); } - async $wait(selector: string, pageFunction: Function | string, options?: types.WaitForFunctionOptions, ...args: any[]): Promise { - return this.mainFrame().$wait(selector, pageFunction, options, ...args); + $wait: types.$Wait = async (selector, pageFunction, options, ...args) => { + return this.mainFrame().$wait(selector, pageFunction, options, ...args as any); } workers(): Worker[] { diff --git a/src/types.ts b/src/types.ts index 7bc9a9f53d..602cff00b8 100644 --- a/src/types.ts +++ b/src/types.ts @@ -27,6 +27,7 @@ export type Evaluate = (pageFunction: PageFunction(pageFunction: PageFunction, ...args: Boxed) => Promise>; export type $Eval = (selector: string, pageFunction: PageFunctionOn, ...args: Boxed) => Promise; export type $$Eval = (selector: string, pageFunction: PageFunctionOn, ...args: Boxed) => Promise; +export type $Wait = (selector: string, pageFunction: PageFunctionOn, options?: WaitForFunctionOptions, ...args: Boxed) => Promise>; export type EvaluateOn = (pageFunction: PageFunctionOn, ...args: Boxed) => Promise; export type EvaluateHandleOn = (pageFunction: PageFunctionOn, ...args: Boxed) => Promise>;