Я не могу перейти со страницы на другую, используя page.goto () - Кукольник - PullRequest
2 голосов
/ 19 мая 2019

Я пытаюсь создать InstagramBot, который входит в систему, а затем заходит в какой-то профиль, вчера мой код работал некоторое время, а потом просто перестал работать.

Я пытался клонировать свой репозиторий из github., но это тоже не работает, иногда это работает снова, но если я пытаюсь создать другую функцию, код просто игнорирует строку кода, которая изменяет страницу.

Я также пытался создатьновая страница, а затем на этой новой странице используйте функцию goto, и она сработала, но учетная запись не остается в системе

Используемая версия кукловода: 1.16.0

версия файла node.js, которую я использую: v10.15.3


const puppeteer = require('puppeteer');

const BASE_URL = "https://www.instagram.com/accounts/login/?hl=en&source=auth_switcher";
const instagram = {
  browser: null,
  page: null,
  profile_url: null,
    initialize: async (profile) => {
    instagram.browser = await puppeteer.launch({
      headless: false
    })

    instagram.profile_url = await "https://www.instagram.com/" + profile;
    instagram.page = await instagram.browser.newPage();
    await instagram.page.goto(BASE_URL, {waitUntil: 'networkidle2'});

  },

  login: async(username, password) =>{
    await instagram.page.waitFor(1000);
    await instagram.page.type('input[name="username"]', username);
    await instagram.page.type('input[name="password"', password);
    await instagram.page.click('button[type="submit"]');
    await instagram.page.waitFor(1500);
    await console.log(instagram.profile_url);
    await instagram.page.goto(instagram.profile_url, {timeout: 0, waitUntil: 'domcontentloaded'}); // the code just ignore this line
    await instagram.page.waitFor(1000);
  },
  getPhotosLinks: async() => {
    console.log("Do something here");
  }

}
module.exports = instagram;

Не выдает сообщение об ошибке, просто не работает

1 Ответ

2 голосов
/ 19 мая 2019

Замените

await instagram.page.click('button[type="submit"]');
await instagram.page.waitFor(1500);

на

await Promise.all([
      instagram.page.click('button[type="submit"]');,
      instagram.page.waitForNavigation()
    ]);

и посмотрите, работает ли

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