Как ждать загрузки jquery после await page.addScriptTag ({url: 'https://code.jquery.com/jquery-3.2.1.min.js'}) в Puppeteer? - PullRequest
0 голосов
/ 20 сентября 2019

КОД:

await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'});

ПРОБЛЕМА :

Я добавляю jquery на страницу со строкой выше, чтобы яможете использовать его для выбора элементов в Puppeteer.Все отлично работает для нескольких страниц, пока не появится ошибка «$ не определено».

Редактировать : Чтобы очистить, первый URL-адрес загружается, а затем кукловод перемещается, нажимая "Кнопка "Далее", чтобы перейти на следующую страницу, открывая новую страницу по новому адресу.


ЧТО Я ПОПРОБОВАЛ:

Я пробовал следующее:

1)

 await page.evaluateOnNewDocument(fs.readFileSync('./public/js/jquery.js', 'utf8'));

2)

page.on('framenavigated', async frame => {
                    if (frame !== page.mainFrame()) { return; } 
                    else {
                        await page.addScriptTag({path: './public/js/jquery.js'});
                    }
            })

3)

 await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'});

Ничего не работает.Что бы вы предложили?

1 Ответ

2 голосов
/ 21 сентября 2019

Вы можете использовать waitForFunction,

await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'});
await page.waitForFunction(() => window.jQuery);

Он будет ждать, пока у окон будет переменная jQuery, и разрешится, когда это произойдет.

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