Javascript 将消息发送到console.log(jest Puppeter)
为什么我在控制台上看不到我的消息。登录到page.evaluate,page.$,page.$$,page.$eval,page.$$eval 难道你就不能访问变量吗Javascript 将消息发送到console.log(jest Puppeter),javascript,node.js,jestjs,puppeteer,Javascript,Node.js,Jestjs,Puppeteer,为什么我在控制台上看不到我的消息。登录到page.evaluate,page.$,page.$$,page.$eval,page.$$eval 难道你就不能访问变量吗 let variable = 0; const divColors = await page.evaluate(() => { const divs = Array.from(document.querySelectorAll('.map-filters div')); let text = divs
let variable = 0;
const divColors = await page.evaluate(() => {
const divs = Array.from(document.querySelectorAll('.map-filters div'));
let text = divs.map((element, index) => {
console.log(element.textContent)
variable =1;
return element.style.color;
})
return text;
})
为什么我不能在本例中使用variable=1和console.logelement.textContent?您在page.evaluate中使用console.log,因此它将其输出记录到Chromium浏览器,而不是节点输出。要在节点的控制台中查看来自浏览器的控制台消息,需要在创建页面对象之后以及在脚本中使用console.log之前订阅这些消息:
const page = await browser.newPage();
page.on('console', consoleObj => console.log(consoleObj.text()));
page.evaluate(...);
至于变量,实际上在脚本中有两个变量
第一个存在于node.js上下文中:
let variable = 0;
另一个-在网页上下文中:
page.evaluate( () => {
variable = 1;
})
他们完全不同。将page.evaluate想象成进入另一个世界的门户:存在于其中的对象只存在于javascript运行时内部,位于Puppeter正在驱动的web浏览器中打开的页面上。节点有自己的运行时和自己的对象集
您可以将数据传递到page.evaluate from节点:
您使用的是page.evaluate中的console.log,因此它将其输出记录到Chromium浏览器,而不是节点输出。要在节点的控制台中查看来自浏览器的控制台消息,需要在创建页面对象之后以及在脚本中使用console.log之前订阅这些消息:
const page = await browser.newPage();
page.on('console', consoleObj => console.log(consoleObj.text()));
page.evaluate(...);
至于变量,实际上在脚本中有两个变量
第一个存在于node.js上下文中:
let variable = 0;
另一个-在网页上下文中:
page.evaluate( () => {
variable = 1;
})
他们完全不同。将page.evaluate想象成进入另一个世界的门户:存在于其中的对象只存在于javascript运行时内部,位于Puppeter正在驱动的web浏览器中打开的页面上。节点有自己的运行时和自己的对象集
您可以将数据传递到page.evaluate from节点:
好的,谢谢你。变量呢?如何使用变量内部求值?如何使用$$eval或$$?我可以将数据传递给它吗?是的,您可以将数据传递给$eval和$$eval,请参阅优秀的木偶师文档:好的,谢谢。变量呢?如何使用变量内部求值?如何使用$$eval或$$?我可以将数据传递给它吗?是的,您可以将数据传递给$eval和$$eval,请参阅优秀的木偶师文档: