javascript - 在输入中设置变量

标签 javascript node.js puppeteer

我想使用 puppeteer 更快地登录,我制作了这个脚本,但它会将输入的变量识别为站点的变量

let data = {
    email : 'mail',
    password : 'passwd'
}

async function login(data) {
  page.evaluate(() => {
    document.querySelector('#loginlb > div.c-loginlb__popup > div > form > div:nth-child(1) > input').value = data.email;
  });
}

错误是这样的:评估失败:TypeError:无法读取未定义的属性“电子邮件”

我该如何解决这个问题?

最佳答案

您应该在评估箭头函数之后传递参数。就像这样 page.evaluate(pageFunction, ...pageFunction arguments) docs .

let data = {
    email : 'mail',
    password : 'passwd'
}

async function login(_data) {
  page.evaluate((data) => {
    document.querySelector('#loginlb > div.c-loginlb__popup > div > form > div:nth-child(1) > input').value = data.email;
  },_data);
}

关于javascript - 在输入中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62916282/

相关文章:

javascript - 如何让 Angular 指令等待隔离范围数据可用?

javascript - Angular js搜索使用过滤器关键字显示按标题分组的数组项

javascript - 更新 React 应用程序中的状态,用新的排序对象数组替换旧数组

javascript - Async.retry 在等待间隔之前立即执行

node.js - 如何将变量传递给 puppeteer 的 $eval 中的回调?

javascript - jQuery click 在 tr 上工作正常,但在 td 上不行

node.js - 我可以使用 ExpressJS 遍历查询字符串参数吗?

node.js - 恶梦循环法提取数据

javascript - Puppeteer - 获取父元素

node.js - 我选择哪一种 headless 浏览器?