page.evaluate(pageFunction, ...args)詳解


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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM