Я тестирую приложение webform, используя cypress.io. И я пытаюсь протестировать Telerik Radcombobox, radcombobox получает список компаний с сервера, использующего Ajax post back. Вот поведение: сначала щелкните в поле ввода предложений 3+ символа, например, «test1», дождитесь загрузки списка предложений, а затем нажмите второй элемент в списке предложений. В этом случае сервер возвращает 3 компании. поэтому я хочу щелкнуть по второму элементу из списка.
Моя проблема в том, что тест ненадежен, потому что время отклика для получения списка компаний варьируется.
Я сейчас использую функцию ожидания, чтобы дождаться загрузки списка.
cy.wait (500) // 500 мс
https://example.cypress.io/commands/waiting
describe('Create a new delivery package', function(){
beforeEach(() => {
cy.visit('/NewDeliveryPackage.aspx');
});
it('Login as admin and create new delivery package', function() {
cy.login('username', 'password')
.get('#ctl00_ContentPlaceHolder1_CompanyComboBox_Input')
.type('test1')
.wait(500) // flaky test (sometimes server takes more than 500ms)
.get(#ctl00_ContentPlaceHolder1_CompanyComboBox_DropDown > div.rcbScroll.rcbWidth > ul > li:nth-child(2)')
.click()
})
})