以下代码在尝试访问 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
<string> A selector to query page forpageFunction
<function> Function to be evaluated in browser context...args
<...Serializable|JSHandle> Arguments to pass topageFunction
- returns: <Promise<Serializable>> Promise which resolves to the return value of
pageFunction
关于node.js - 如何将变量传递给 puppeteer 的 $eval 中的回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49845824/