page.evaluate(pageFunction, ...args)
pageFunction
<[function]|[string]> 要在頁面實例上下文中執行的方法...args
<...[Serializable]|[JSHandle]> 要傳給pageFunction
的參數- 返回: <[Promise]<[Serializable]>>
pageFunction
執行的結果
如果pageFunction返回的是[Promise],page.evaluate
將等待promise完成,並返回其返回值。
如果pageFunction返回的是不能序列化的值,將返回undefined
給pageFunction
傳參數示例:
const result = await page.evaluate(x => { return Promise.resolve(8 * x); }, 7); // (譯者注: 7 可以是你自己代碼里任意方式得到的值) console.log(result); // 輸出 "56"
也可以傳一個字符串:
console.log(await page.evaluate('1 + 2')); // 輸出 "3" const x = 10; console.log(await page.evaluate(`1 + ${x}`)); // 輸出 "11"
[ElementHandle] 實例 可以作為參數傳給 page.evaluate
:
const bodyHandle = await page.$('body'); const html = await page.evaluate(body => body.innerHTML, bodyHandle); await bodyHandle.dispose();