Javascript 尝试访问Puppeter调用中的函数参数时接收ReferenceError
我有一个功能,选择过滤器的网站上使用木偶 问题是,当我传递函数参数并在将其传递到Javascript 尝试访问Puppeter调用中的函数参数时接收ReferenceError,javascript,node.js,web-scraping,puppeteer,Javascript,Node.js,Web Scraping,Puppeteer,我有一个功能,选择过滤器的网站上使用木偶 问题是,当我传递函数参数并在将其传递到页面之前对其进行控制台日志记录时。选择或页面。$eval则正确记录这些参数,但函数表示变量未定义 private static async selectFilterOptions( { skillFilter, skillMinValue }) { try { console.log({ skillFilter, skillMinValue }); // { skillFilter: '1', s
页面之前对其进行控制台日志记录时。选择
或页面。$eval
则正确记录这些参数,但函数表示变量未定义
private static async selectFilterOptions( { skillFilter, skillMinValue }) {
try {
console.log({ skillFilter, skillMinValue }); // { skillFilter: '1', skillMinValue: '30' }
await this.page.waitForSelector(".containerMain");
await this.page.select("select[name='skill']", skillFilter);
await this.page.$eval("input[name='range']", el => el.value = skillMinValue); // Evaluation failed: ReferenceError: skillMinValue is not defined
await this.page.click("input[name='Search']");
} catch (error) {
console.log(error.message)
}
}
文档以这种方式描述功能:
page.$eval(selector, pageFunction[, ...args])
这里的参数是在page.evaluate内部使用的任意数量的逗号分隔参数(可选,必须可序列化)
因此,在您的案例中,以下是如何将值从节点上下文传递到浏览器上下文:
await this.page.$eval("input[name='range']", el => el.value = skillMinValue, skillMinValue);