codecamp

Puppeteer 工人

class:worker

Worker 类表示一个 WebWorker。在页面对象上 workercreated 和 workerdestroyed 事件被触发,以标识 worker 的生命周期。

page.on('workercreated', worker = >console.log('Worker created: ' + worker.url()));
page.on('workerdestroyed', worker = >console.log('Worker destroyed: ' + worker.url()));
console.log('Current workers:');
for (const worker of page.workers()) console.log('  ' + worker.url());

Methods

  • worker.evaluate(pageFunction, ...args)v0.9.0
  • worker.evaluateHandle(pageFunction, ...args)v0.9.0
  • worker.executionContext()v0.9.0
  • worker.url()v0.9.0

Methods

worker.evaluate(pageFunction, ...args)v0.9.0

  • pageFunction <function|string> Function to be evaluated in the worker context
  • ...args <...Serializable|JSHandle> Arguments to pass to pageFunction
  • returns: <Promise<Serializable>> Promise which resolves to the return value of pageFunction

如果传递给 worker.evaluate 的函数返回一个 Promise,那么 worker.evaluate 将等待解析并返回它的值。 如果传递给 worker.evaluate 的函数返回一个 非[序列化]的值,那么 worker.evaluate 解析为 undefined。 (await worker.executionContext()).evaluate(pageFunction, ...args) 的快捷链接。

worker.evaluateHandle(pageFunction, - ...args)v0.9.0

  • pageFunction <function|string> Function to be evaluated in the page context
  • ...args <...Serializable|JSHandle> Arguments to pass to pageFunction
  • returns: <Promise<JSHandle>> Promise which resolves to the return value of pageFunction as in-page object (JSHandle)

worker.evaluate 和 worker.evaluateHandle 之间的唯一区别是 worker.evaluateHandle 返回页内对象(JSHandle)。 如果传递给 worker.evaluateHandle 的函数返回一个 Promise,那么 worker.evaluateHandle 将等待解析并返回它的值。 (await worker.executionContext()).evaluateHandle(pageFunction, ...args) 的快捷链接。

worker.executionContext()v0.9.0 returns: <Promise<ExecutionContext>>

worker.url()v0.9.0 returns: <string>

Puppeteer 页面
Puppeteer 可及性
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }