У меня проблемы с тем, чтобы заставить кукловода ждать навигации.
Согласно документации Здесь Пример:
const [response] = await Promise.all([
page.waitForNavigation(), // The promise resolves after navigation has finished
page.click('a.my-link'), // Clicking the link will indirectly cause a navigation
]);
Мой код:
const element = await page.waitForXPath(`${lineSelector.xpath}//a[contains(text(), 'Go')]`)
const [response] = await Promise.all([
page.waitForNavigation(),
element.click()
]);
Все работает .. кроме того, что не ждет навигации.Я перепробовал все различные варианты:
- load - считать навигацию завершенной, когда событие load запущено.
- domcontentloaded - считать навигацию завершенной, когда событие DOMContentLoaded запущено,
- networkidle0 - считается, что навигация завершена, если не более 0 сетевых подключений в течение не менее 500 мс.
- networkidle2 - считается, что навигация завершена, если не менее 2 сетевых подключений в течение как минимум 500 мс.
Я даже пытался перевернуть их другим способом, прежде чем сделать паузу вЕсли что-то нужно разрешить.
На самом деле это не «переход» на другую страницу, а выполнение запросов на стороне клиента для загрузки части страницы, но я решил, что мониторинг netowrk (неактивный или нет) - долженподобрать подобные вещи.
Я не могу полагаться на смену селектора или мутацию dom, потому что они могут быть точно такими же от одного клика до следующего.
Это ошибка?Или я что-то упустил?
Спасибо за ваше время.