2 回答
![?](http://img1.sycdn.imooc.com/5458453d0001cd0102200220-100-100.jpg)
TA贡献1772条经验 获得超5个赞
const puppeteer = require('puppeteer');
async function test() {
const browser = await puppeteer.launch({ headless: false, timeout: 0};
const page2 = await browser.newPage();
await page2.goto("localhost");
await page2.waitFor(2530);
const elements = await page2.evaluate(() => [...document.querySelectorAll('p')]);
for (var i = 0; i < elements.length; i++) {
if(elements[i].className){
console.log(elements[i].innerText[]);
}
}
}
test();
改变这一行
console.log(elements[i].innerText[]);
到
console.log(elements[i].innerText);
并使用它从评估中返回一个段落数组
const textsArray = await page2.evaluate(
() => [...document.querySelectorAll('p')].map(elem => elem.innerText)
);
这将返回段落标签中所有文本的数组,否则您可以操作 map 以返回数组内的对象及其类名,如果您同时需要
像这样
const textsArray = await page2.evaluate(() =>
[...document.querySelectorAll('p')].map(elem =>
{ return {class: elem.className, text:elem.innerText}
)
);
![?](http://img1.sycdn.imooc.com/5458643d0001a93c02200220-100-100.jpg)
TA贡献1878条经验 获得超4个赞
async function test() {
const browser = await puppeteer.launch({ headless: false, timeout: 0};
const page2 = await browser.newPage();
await page2.goto("localhost");
await page2.waitFor(2530);
let elements = await page.$$('p');
for (let i = 0; i < elements.length; i++) {
let el_class = await page.evaluate(el => el.getAttribute('class'), elements[i]);
console.log(el_class);
}
}
添加回答
举报