yew*_*ang 5 javascript puppeteer
在 Puppeteer 中,page.evaluate如果我将类作为参数传递,则会引发错误。
不过,它适用于常规对象。
是否有一些解决方法可以使其工作?
const puppeteer = require("puppeteer");
(async () => {
let browser = await puppeteer.launch({
headless: true
});
let page = await browser.newPage();
class SomeClass {
constructor() {
this.a = 3;
}
}
await page.evaluate((SomeClass) => {
let object = new SomeClass();
console.log(object.a);
}, SomeClass);
})();
Run Code Online (Sandbox Code Playgroud)
如果您尝试传递函数,也会出现类似的问题。我见过有人将函数字符串化以将其传递给 puppeteer 以使其工作,因此在您的情况下,我会使用 eval 来执行此操作。许多人认为 eval 是邪恶的,也许有更好的方法,但至少它是一种可能的解决方法。
class SomeClass {
constructor() {
this.a = 3;
}
}
await page.evaluate((strSomeClass) => {
eval("window.SomeClass = " + strSomeClass);
let object = new SomeClass();
console.log(object.a);
}, SomeClass.toString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1720 次 |
| 最近记录: |