Как я могу приостановить и дождаться пользовательского ввода с помощью Puppeteer? - PullRequest
0 голосов
/ 26 октября 2018

Мне нужно сделать Puppeteer, чтобы приостановить и дождаться пользовательского ввода username и password, прежде чем продолжить.Это приложение nodejs 8.12.0.

(async () => {
    const browser = await puppeteer.launch({headless: false});
    const page = await browser.newPage();   
    await page.goto('https://www.myweb.com/login/');

    //code to wait for user to enter username and password, and click `login`

    const first_page = await page.content();

   //do something 

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

По сути, программа останавливается и ждет, пока пользователь не нажмет кнопку login.Возможно ли это сделать в Puppeteer?Или что еще я могу сделать?

1 Ответ

0 голосов
/ 26 октября 2018

Вы можете использовать page.waitForFunction(), чтобы дождаться, пока функция вернет истинное значение, прежде чем продолжить.

Следующая функция будет ждать, пока поля #username и #password содержатзначение перед продолжением:

await page.waitForFunction(() => {
  const username = document.getElementById('username').value;
  const password = document.getElementById('password').value;

  return username.length !== 0 && password.length !== 0;
});

Но поскольку вы сами вводите #username и #password, вы можете просто использовать:

await page.type('#username', 'username');
await page.type('#password', 'password');
await page.click('#login');
await page.waitForNavigation();
...