const pointName = 'xyz';
await page.$eval('.popup-dialog input[name=name]', el => el.value = pointName );
我不明白为什么在此示例中无法解析
pointName
的原因,Error: Evaluation failed: ReferenceError: pointName is not defined
有人可以启发我吗?
最佳答案
问题
设置值的函数在页面上下文中运行。在该上下文中,Node.js环境中的变量是未知的,必须将其作为参数传递给函数。
解
对于函数page.$eval
,您传递以下参数:
选择器
函数:函数的第一个参数将是元素。以下参数将是函数之后传递的参数。
任何可序列化的值:作为第三(甚至另一个参数)传递的任何值都将作为第二(或第三...)参数传递给函数。
将所有内容放在一起,您可以这样做:
await page.$eval(
'.popup-dialog input[name=name]',
(el, pointName) => el.value = pointName, // executed in the page context
pointName // this is the variable from the Node.js environment
);
关于javascript - 操纵up-访问外部范围变量失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55524329/