Кукловод, удаляющий поля ввода данных на странице. WaitFor () - PullRequest
0 голосов
/ 12 января 2020

У меня есть форма для входа на веб-сайт, на которую я пытаюсь войти, я смог получить имя пользователя и пароль для ввода в формы ввода. Затем я хотел подождать отправки формы, но когда я делаю страницу. Waitfor (), кажется, стирает поля входных данных. Может кто-нибудь объяснить, почему или показать обходной путь?

async function Scraper(){
try{

  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36');
  await page.goto('https://onlyfans.com/');

await page.waitFor('input[name=email]');

console.log("starting to do this");

await page.$eval('input[name=email]', el => el.value = 'xxx@gmail.com');
await page.$eval('input[name=password]', el => el.value = 'xxx');

let selector = 'button[type="submit"]';

await page.screenshot({
  path: 'yoursite.png',
  fullPage: true
});

  await page.waitFor(5000);

  await page.evaluate((selector) => document.querySelector(selector).click(), selector); 


await page.screenshot({
path: 'yoursite4.png',
fullPage: true});

console.log("done");

Вот различия между двумя изображениями:

enter image description here

enter image description here

1 Ответ

1 голос
/ 12 января 2020

Похоже, что задержка до включения кнопки входа в систему задерживается. У меня сработало следующее:

await page.goto('https://onlyfans.com/', {waitUntil: "networkidle0"});

await page.waitForSelector('input[name=email]');
await page.waitForSelector('input[name=password]');
await page.waitForSelector('button[type="submit"]');

await page.type('input[name=email]', 'xxx@gmail.com', {delay: 200});
await page.type('input[name=password]', 'xxx', {delay: 200});

await page.click('button[type="submit"]');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...