在尝试访问 uid 时,由于 ReferenceError ,以下代码无效。我知道eval代码在浏览器的上下文中运行,因此无法访问此变量,但我不知道如何传递变量的值:
var uid = 'foo@example.com';
await page.$eval('#uid', el => el.value = uid);
答案 0 :(得分:5)
page.$eval()
的第三个参数传递参数,所以你会这样做:
await page.$eval('#uid', (el, _uid) => el.value = _uid, uid);
page.$eval()
docs as of Puppeteer 1.3.0:
页。$ eval(selector,pageFunction [,... args])
- 页面的选择器
selector
< string>用于查询pageFunction
< function>要在浏览器上下文中评估的函数- 的参数
...args
< ... Serializable | JSHandle>传递给pageFunction
- 返回:< Promise< Serializable>>承诺解析为
的返回值pageFunction