通过javascript填写表格(木偶)

Fill a form through javascript (puppeteer)

我正在尝试填写 this login form 并像这样提交:

document.querySelector('#username').value="my@email";
document.querySelector('#username').dispatchEvent(new Event('change'));
document.querySelector('#password').value="mypassword";
document.querySelector('#password').dispatchEvent(new Event('change'));
document.querySelector('button[class~="btn-red"]').click();

但是网站显示邮箱和密码为空。我猜它正在等待按键或其他东西。

我该如何模拟?

const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.boxtal.com/fr/fr/app/utilisateur/connexion', {
    waitUntil: 'networkidle2'
  });

  await page.waitFor('#username');

  await page.type('#username','my@email');;

  // await browser.close();
})();

如果您使用的是 puppeteer,您可以使用上面的代码在输入字段中输入内容

您可以发出 input event instead of the change 事件:

document.querySelector('#username').value="my@email";
document.querySelector('#username').dispatchEvent(new Event('input'));
document.querySelector('#password').value="mypassword";
document.querySelector('#password').dispatchEvent(new Event('input'));
document.querySelector('button[class~="btn-red"]').click();