Je suis nouveau sur javascript et marionnettiste. J'ai essayé un code de connexion ci-dessous et j'ai échoué. En comparaison, j'ai ajouté pages2 et réussi. Comment puis-je le résoudre? Merci d'avance.
const CREDS = require('./creds');
async function main() {
const puppeteer = require('puppeteer');
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');
await page.waitForNavigation();
await page.type('#id', CREDS.username);
await page.type('#loginPw', CREDS.password);
await page.click('#loginSubmit');
const page2 = await browser.newPage();
await page2.setViewport({width: 1200, height: 720})
await page2.goto('https://google.com');
await page2.type('#lst-ib', 'Headless Chrome');
}
main();
page.waitForNavigation();
attend la navigation après un click
ou toute action de navigation qui se déclenche à partir de la page. vous devriez probablement ajouter waitForNavigation après le page.click.
await Promise.all([
page.click('#loginSubmit'),
page.waitForNavigation({ waitUntil: 'networkidle0' }),
]);
Il faudra attendre que les deux promesses se réalisent.
Alors maintenant, votre code initial ressemblerait à ceci,
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();
Remarque: Répondez à côté, je ne peux pas tester cela car je n'ai pas de connexion pour daum.net
et je ne vois pas l'erreur réelle à laquelle vous faites face. Si vous pouvez essayer la solution fournie ci-dessus et partager les résultats, ce serait beaucoup plus utile.