Я проверил ваш код, и он кажется правильным, несмотря на некоторые селекторы. Кроме того, мне пришлось добавить пару тайм-аутов, чтобы все заработало. Однако мне не удалось воспроизвести вашу проблему, поэтому я просто опубликую код, который работал для меня.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto('https://accounts.google.com/AccountChooser?service=mail&continue=https://mail.google.com/mail/', {timeout: 60000})
.catch(function (error) {
throw new Error('TimeoutBrows');
});
await page.screenshot({path: './1.png'});
...
})();
Обратите внимание, что я запускаю браузер в обычном, а не в автономном режиме. Если вы посмотрите на скриншот с этой позиции, вы увидите, что это правильная форма входа в Google
Остальная часть кода отвечает за ввод пароля
const puppeteer = require('puppeteer');
(async () => {
...
await page.waitForSelector('#identifierId', {visible: true});
await page.type('#identifierId', 'my@email');
await Promise.all([
page.click('#identifierNext'),
page.waitForSelector('.whsOnd', {visible: true})
]);
await page.waitForSelector('input[name=password]', {visible: true});
await page.type('input[name=password]', "my.password");
await page.waitForSelector('#passwordNext', {visible: true});
await page.waitFor(1000);
await page.click('#passwordNext');
await page.waitFor(5000);
})();
Обратите также внимание на некоторые отличия от вашего кода - поле выбора пароля отличается. Мне пришлось добавить await page.waitForSelector('#passwordNext', {visible: true});
и небольшой тайм-аут после этого, чтобы кнопка могла быть успешно нажата.
Я протестировал весь код выше, и он успешно работал. Пожалуйста, дайте мне знать, если вам все еще нужна помощь или у вас проблемы с моим примером.