Javascript 获取page.evaluate不是函数错误
我创建了一个助手来管理其他模块中的代码。我写了这段代码:Javascript 获取page.evaluate不是函数错误,javascript,node.js,dom-events,node-modules,puppeteer,Javascript,Node.js,Dom Events,Node Modules,Puppeteer,我创建了一个助手来管理其他模块中的代码。我写了这段代码: Scraper: async function(page, selector1, selector2, selector3) { let list_of_items = await page.evaluate(() => { let items = []; let elemend = selector1 let items_present =
Scraper: async function(page, selector1, selector2, selector3) {
let list_of_items = await page.evaluate(() => {
let items = [];
let elemend = selector1
let items_present = document.querySelectorAll(elemend);
items_present.forEach((element) => {
let itemJson = {};
try {
itemJson.name = element.querySelector(selector2).innerText;
if(element.querySelector(selector3)){
itemJson.price = element.querySelector(selector3).innerText;
}
}
catch (exception){
}
items.push(itemJson);
});
return items;
});
console.dir(list_of_items);
每次我尝试执行代码时,它都会失败,并说evaluate不是一个函数
await Scraper.Scraper(hunt.div_container, hunt.name_selector, hunt.price_selector);
您调用它是错误的,不要将其称为
等待Scraper.Scraper()
像调用普通函数一样调用它Scraper.Scraper()
也可能不要为类和函数使用相同的名称,因为这可能会让人困惑,并会在不远的时间内成为调试的噩梦,最后确保先实例化类,因为在我看来,您的自动化工具似乎在类中,因此,确保在调用其内部函数之前先实例化它将三个参数传递给Scraper.Scraper()
,而不是四个参数,因此它会尝试执行hunt.div\u container.evaluate
,这不是一个函数。