以下代码因试图访问 "uid" 时出现 "引用错误(ReferenceError)" 而无法工作。我了解评估代码是在浏览器的上下文中运行,因此无法访问此变量,但我不知道如何传递变量的值。
var uid = 'foo@example.com';
await page.$eval('#uid', el => el.value = uid);
page.$eval()
的第三个参数传递参数,因此您将执行以下操作:await page.$eval('#uid', (el, _uid) => el.value = _uid, uid);
page.$eval()
是 Puppeteer 1.3.0 版本的文档:
page.$eval(selector, pageFunction[, ...args])
selector
<string>:要在页面中查询的选择器pageFunction
<function>:将在浏览器上下文中评估的函数...args
<...Serializable|JSHandle>:要传递给pageFunction
的参数- 返回值:<Promise<Serializable>>:解析为
pageFunction
的返回值的 Promise
await page.$eval('#uid', (el, _uid) => el.value = _uid, uid);
- Yaniv Efraim