Я использую Cypress для PHP-сайта, который я никак не могу изменить.
В нем есть поле ввода автозаполнения, которое отправляет поток вызовов XHR на сервер.
Результатызаполните таблицу, в которой в каждой строке есть кнопка, которую можно щелкнуть.
Мне нужно подождать, пока есть только одна строка, а затем нажать ее кнопку.
cy.get('#dataTables_clients_filter > label > .form-control').type(client).then(() => {
cy.get('table#dataTables_clients > tbody > tr > td:nth-child(6) > i').click();
}
Результатвыше ошибка cy.click() can only be called on a single element. Your subject contained 100 elements.
Количество вызовов XHR варьируется в зависимости от значения клиента.
Сложность возникает из-за этого: поскольку theInput.type(client)
вставляет букву за раз,страница отправляет новый XHR для каждого.Это означает, что изначально будет длинный список строк, одна из которых всегда будет содержать «клиент».По мере того, как обрабатывается все больше и больше писем, список становится короче и заканчивается в конечном итоге всего одной строкой.
Как я могу ждать, пока любое из следующих утверждений окажется верным?
tbody > tr:nth-child(0) > td:nth-child(4)
равно client
- больше не отправляются вызовы XHR
- длина массива таблиц строк равна 1