@ozerovlife

Как подождать загрузку элемента в puppeteer?

Сайт easypay. сделан на ангуляре. я с помощью puppeteer логинюсь в лк, далее жму историю платежей > расширенный поиск > в поле "Інструмент платежу" и пытаюсь выбрать "грн", НО изначально в html этого нет. Cписок с вариантами выбора вставляется в код по клику, но puppeteer видимо ищет в начальном коде который он считывает сразу после загрузки. Как заставить его кликнуть по элементу списка? П.С. - "да, я вижу что в консоле пишет что он не находит элемент с этим айди, но в этом то и проблема, что после клика этот элемент существует";
5fc2cc196f24a489808437.png
5fc2cc1fd73e7751850448.png

const pup = require('puppeteer');
const fs = require('fs');
const cheerio = require('cheerio');

const user = {
    name: '+38 098 000000000',
    pass: 'password'
};


const parse = async () => {
    try {
        let browser = await pup.launch({headless: false});
        let page = await browser.newPage();

        await page.setViewport({
            width: 900,
            height: 1000
        })
        await page.goto('https://easypay.ua/ua/', { waitUntil: 'networkidle0' });

        await page.click(`button[class*="header__sign-in"]`);

        await page.focus(`input[id*="sign-in-phone"]`)
        await page.keyboard.type(`${user.name}`)

        await page.focus(`input[name*="password"]`)
        await page.keyboard.type(`${user.pass}`)

        await page.click(`#sign-in > div.sign-in_content > form > button`, {delay: 1000})

        await page.waitForTimeout(1000)
        await page.goto('https://easypay.ua/ua/profile/history', { waitUntil: 'networkidle0' });

        await page.click(`body > app-root > app-layout > app-main-layout > app-profile-component > app-history > main > section > app-history-search-form > form > div.profile-history__filter-more.small-16.column > span`, {delay: 1000})


        await page.click(`body > app-root > app-layout > app-main-layout > app-profile-component > app-history > main > section > app-history-search-form > form > div.profile-history__filter-tool.form-row.small-16.medium-8.large-4.column.ng-star-inserted > ng-select > div`, {delay: 2000})

        await page.click(`#a49f0f8a5e8e`, {delay: 2000}) // Клик по гривне
        

        // await page.click(`.is-dropdown-submenu-parent > ul > li:nth-child(2)`, {delay: 1000})


        // await browser.close()
    } catch (e) {
        console.error(e)
    }
}
parse();
  • Вопрос задан
  • 1180 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы