Cypress тест Telerik Radcombobox ждать ответа ajax - PullRequest
0 голосов
/ 12 июня 2019

Я тестирую приложение 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()
  })
})
...