Как войти в Puppeteer? - PullRequest
       20

Как войти в Puppeteer?

0 голосов
/ 28 апреля 2018

Я новичок в javascript и кукловод. Я попробовал код входа в систему ниже и не удалось. Для сравнения я добавил pages2 и добился успеха. Как я могу решить это? Заранее спасибо.

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();

1 Ответ

0 голосов
/ 28 апреля 2018

page.waitForNavigation(); ожидает навигации после click или любого действия навигации, которое запускается со страницы. Возможно, вам следует добавить waitForNavigation после page.click.

await Promise.all([
      page.click('#loginSubmit'),
      page.waitForNavigation({ waitUntil: 'networkidle0' }),
]);

Он будет ждать разрешения обоих обещаний.

Так что теперь ваш исходный код будет выглядеть так:

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();

Примечание: Ответьте в сторону, я не могу проверить это, так как у меня нет логина для daum.net, и я не вижу фактическую ошибку, с которой вы столкнулись. Если вы можете попробовать решение, представленное выше, и поделиться результатами, это будет гораздо полезнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...