Merge pull request #22249 from zwh8800/master

[@types/puppeteer] fix $eval argument from ElementHandler to Element
This commit is contained in:
Armando Aguirre
2017-12-18 10:44:32 -08:00
committed by GitHub
2 changed files with 20 additions and 2 deletions

View File

@@ -675,7 +675,7 @@ export interface FrameBase {
*/
$eval(
selector: string,
fn: (element: ElementHandle | null, ...args: any[]) => any,
pageFunction: (element: Element, ...args: any[]) => any,
...args: any[]
): Promise<any>;
@@ -689,7 +689,7 @@ export interface FrameBase {
*/
$$eval(
selector: string,
fn: (elements: ElementHandle[], ...args: any[]) => any,
pageFunction: (elements: NodeListOf<Element>, ...args: any[]) => any,
...args: any[]
): Promise<any>;

View File

@@ -263,3 +263,21 @@ 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) => {
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();
})();