【发布时间】:2020-03-05 10:59:28
【问题描述】:
document.querySelectorAll('.summary').innerText;
这会在下面的 sn-p 中引发错误,在我的 Puppeteer 页面暴露的函数 docTest 中说“document.querySelector 不是函数”。
我想将特定节点传递给每个方法并在evaluate 中获取结果。
与document.getElemenetbyId 相同。
const puppeteer = require('puppeteer');
//var querySelectorAll = require('query-selector');
let docTest = (document) => {
var summary = document.querySelectorAll(.summary).innerText;
console.log(summary);
return summary;
}
let scrape = async () => {
const browser = await puppeteer.launch({
headless: false
});
const page = await browser.newPage();
await page.goto('http://localhost.com:80/static.html');
await page.waitFor(5000)
await page.exposeFunction('docTest', docTest);
var result = await page.evaluate(() => {
var resultworking = document.querySelector("tr");
console.log(resultworking);
var summary = docTest(document);
console.log(resultworking);
return summary;
});
console.log(result);
await page.waitFor(7000);
browser.close();
return {
result
}
};
scrape().then((value) => {
console.log(value); // Success!
});
【问题讨论】:
标签: node.js puppeteer google-chrome-headless