Puppeteer里面的page.evaluate
我怎么能console.log内的page.evaluate内的东西,传递给节点,并在评估页面使用它?
我其实想loggingpage.evaluate的进度到控制台,并显示一些结果给用户。
如果你想要的只是“loggingpage.evaluate到控制台的进度”,那么只是
const page = await browser.newPage(); page.on('console', console.log);
像往常一样使用page.evaluate
console.log
,不再需要依赖关系。
在这个代码示例中实现notifyUi
函数:
const page = await browser.newPage(); page.on('console', (...args) => { this.notifyUi('[chrome] ' + args[0]); }); await page.goto(url); const result = await page.evaluate(() => { console.log('I am alive'); return Promise.resolve(true); }); this.notifyUi('Evaluation returned with ' + result);
我喜欢@Vaviloff的答案,但是当你只想要文本时,你将会logging整个ConsoleMessage对象。 因此,我个人使用下面的:
const EOL = require('os').EOL; const _page = await browser.newPage(); _page.on('console', _fCleanLog); function _fCleanLog(ConsoleMessage) { console.log(ConsoleMessage.text + EOL); }