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
,这不是一个函数。