【问题标题】:Getting page.evaluate not a function error获取 page.evaluate 不是函数错误
【发布时间】:2019-12-12 06:05:32
【问题描述】:

我创建了一个助手来管理我在其他模块中的代码。我写了这段代码:

 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);

每次我尝试执行我的代码时它都会失败并说评估不是一个函数

await Scraper.Scraper(hunt.div_container, hunt.name_selector, hunt.price_selector);

【问题讨论】:

  • 您将三个参数传递给Scraper.Scraper() 而不是四个,因此它会尝试执行不是函数的hunt.div_container.evaluate

标签: javascript node.js dom-events node-modules puppeteer


【解决方案1】:

你叫错了,不要把它当成await Scraper.Scraper() 像普通函数一样调用它Scraper.Scraper() 也可能不要为类和函数使用相同的名称,因为这会让人感到困惑并成为噩梦在不远的时间调试并最后确保首先实例化该类,因为在我看来您的自动化工具在一个类中,因此请确保在调用其中的函数之前先实例化它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-18
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2023-01-24
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多