【发布时间】:2018-04-15 19:15:35
【问题描述】:
在尝试访问uid 时,由于ReferenceError,以下代码不起作用。我知道eval 代码在浏览器的上下文中运行,因此无法访问此变量,但我不知道如何传递变量的值:
var uid = 'foo@example.com';
await page.$eval('#uid', el => el.value = uid);
【问题讨论】:
在尝试访问uid 时,由于ReferenceError,以下代码不起作用。我知道eval 代码在浏览器的上下文中运行,因此无法访问此变量,但我不知道如何传递变量的值:
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() docs as of Puppeteer 1.3.0:
page.$eval(selector, pageFunction[, ...args])
selector查询页面的选择器 pageFunction在浏览器上下文中评估的函数 ...args<...serializable> 传递给pageFunction的参数- 返回:
> Promise 解析为 pageFunction的返回值
【讨论】:
await page.$eval('#uid', (el, _uid) => el.value = _uid, uid);