Я не получаю правильный сценарий на кукловоде, где в пользовательском интерфейсе ожидает загрузки данных в раскрывающемся списке - PullRequest
1 голос
/ 06 июня 2019

Я использую долгожданную задержку страницы (8000), чтобы убедиться, что все данные в выпадающем списке загружены. Я предполагаю, что должен быть способ дождаться загрузки всех данных в выпадающем списке, а затем автоматизация переходит к следующему шагу после этого.

Я пытался использовать проверку для селекторов, но мы не можем получить проверку для динамических данных, заполненных запросом, также пытался использовать await page.delay (n), но это неправильный способ, потому что иногда выполнение запроса может занять некоторое время.

page.click(selectors.xxx.nnn)
    await delay (1000)
    page.keyboard.type('abc')
    await delay(8000)
    page.keyboard.press('ArrowDown')
    page.keyboard.press('ArrowDown')
    page.keyboard.press('Enter')
await page.waitFor(selectors.xxx.nnn)
    page.click(selectors.xxx.nnn)
    await page.waitFor(selectors.xxx.abc)

Таким образом, использование задержки может быть решением, но не правильным решением. Если бы был способ, которым я мог бы заставить автоматизировать браузер в кукловоде, ждать не селекторов, а данных из бэкэнда. Было бы неплохо убедиться, что весь ожидаемый список в раскрывающемся списке заполнен и может быть выбран.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

await page.waitForResponse(response => response.status() === 200)

или

await page.waitForResponse(response => response.ok())

Это позволяет автоматизации ждать, пока все ответы не будут успешными

0 голосов
/ 06 июня 2019

Вы можете использовать page.waitForFunction, чтобы дождаться, пока определенная функция вернет true.В вашем случае вы можете посчитать варианты выпадающего списка.Я предполагаю, что «выпадающий список» является простым <select>...</select> HTML-элементом.

Пример кода

await page.waitForFunction(() => document.querySelector('#id-of-selectbox').length > 0);

в качестве атрибута length для выбораbox возвращает количество опций внутри, этот код будет ждать, пока в поле выбора будет хотя бы одна опция, прежде чем продолжить.

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