我想使用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:无法读取未定义的属性“email”
我该怎么解决呢?
您应该在求值箭头函数之后传递参数。 例如page.evaluate(pageFunction,。。。pageFunction arguments)
。 医生。
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);
}
由于data
不在页面的作用域内。评估
,您可以在global
中设置它,并使用global
检索它,因为它始终在作用域内。
global['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 = global['data'].email;
});
}