page.waitForNavigation();
waits for navigation after a click
or any navigation action that triggers from the page.you should probably add the waitForNavigation after the page.click.
await Promise.all([
page.click('#loginSubmit'),
page.waitForNavigation({ waitUntil: 'networkidle0' }),
]);
It will wait until both promises resolves.
So now your initial code would look like this,
const puppeteer = require('puppeteer');
async function main() {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.setViewport({width: 1200, height: 720});
await page.goto('https://www.daum.net', { waitUntil: 'networkidle0' }); // wait until page load
await page.type('#id', CREDS.username);
await page.type('#loginPw', CREDS.password);
// click and wait for navigation
await Promise.all([
page.click('#loginSubmit'),
page.waitForNavigation({ waitUntil: 'networkidle0' }),
]);
}
main();
Note: Answer aside, I cannot test this since I don't have a login for daum.net
and I cannot see the actual error you are facing. If you can try the solution provided above, and share the results, it'd be much more helpful.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…