From cd5baa8128fac98f5b7284a282422df9f24514f5 Mon Sep 17 00:00:00 2001 From: zwh8800 Date: Sun, 17 Dec 2017 10:51:41 +0800 Subject: [PATCH 1/2] fix $eval argument from ElementHandler to Element --- types/puppeteer/index.d.ts | 4 ++-- types/puppeteer/puppeteer-tests.ts | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/types/puppeteer/index.d.ts b/types/puppeteer/index.d.ts index 311d2c47b7..cfe47c5279 100644 --- a/types/puppeteer/index.d.ts +++ b/types/puppeteer/index.d.ts @@ -667,7 +667,7 @@ export interface FrameBase { */ $eval( selector: string, - fn: (element: ElementHandle | null, ...args: any[]) => any, + fn: (element: Element | null, ...args: any[]) => any, ...args: any[] ): Promise; @@ -681,7 +681,7 @@ export interface FrameBase { */ $$eval( selector: string, - fn: (elements: ElementHandle[], ...args: any[]) => any, + fn: (elements: NodeListOf, ...args: any[]) => any, ...args: any[] ): Promise; diff --git a/types/puppeteer/puppeteer-tests.ts b/types/puppeteer/puppeteer-tests.ts index d8bb2b4229..0f987e9d5b 100644 --- a/types/puppeteer/puppeteer-tests.ts +++ b/types/puppeteer/puppeteer-tests.ts @@ -263,3 +263,24 @@ puppeteer.launch().then(async browser => { browser.close(); })(); + +// test $eval and $$eval +(async () => { + const browser = await puppeteer.launch(); + const page = await browser.newPage(); + await page.goto("https://example.com"); + let elementText = await page.$eval('#someElement', (element) => { + if (element == null) { + return ''; + } + return element.innerHTML; + }); + + elementText = await page.$$eval('.someClassName', (elements) => { + console.log(elements.length); + console.log(elements.item(0).outerHTML); + return elements[3].innerHTML; + }); + + browser.close(); +})(); From ec897a72552285bf92a468d743b0c682e3073221 Mon Sep 17 00:00:00 2001 From: zwh8800 Date: Mon, 18 Dec 2017 10:21:38 +0800 Subject: [PATCH 2/2] rename fn to pageFunction and remove element type null --- types/puppeteer/index.d.ts | 4 ++-- types/puppeteer/puppeteer-tests.ts | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/types/puppeteer/index.d.ts b/types/puppeteer/index.d.ts index cfe47c5279..454310cb28 100644 --- a/types/puppeteer/index.d.ts +++ b/types/puppeteer/index.d.ts @@ -667,7 +667,7 @@ export interface FrameBase { */ $eval( selector: string, - fn: (element: Element | null, ...args: any[]) => any, + pageFunction: (element: Element, ...args: any[]) => any, ...args: any[] ): Promise; @@ -681,7 +681,7 @@ export interface FrameBase { */ $$eval( selector: string, - fn: (elements: NodeListOf, ...args: any[]) => any, + pageFunction: (elements: NodeListOf, ...args: any[]) => any, ...args: any[] ): Promise; diff --git a/types/puppeteer/puppeteer-tests.ts b/types/puppeteer/puppeteer-tests.ts index 0f987e9d5b..913d46a789 100644 --- a/types/puppeteer/puppeteer-tests.ts +++ b/types/puppeteer/puppeteer-tests.ts @@ -270,9 +270,6 @@ puppeteer.launch().then(async browser => { const page = await browser.newPage(); await page.goto("https://example.com"); let elementText = await page.$eval('#someElement', (element) => { - if (element == null) { - return ''; - } return element.innerHTML; });