Cypress. cy.type ({enter} терпит неудачу периодически - PullRequest
0 голосов
/ 01 апреля 2019

Я запускаю тесты e2e в веб-приложении с использованием Cypress.

Этот раздел прерывается с перебоями.

Здесь текст поиска вводится в соответствующее поле.При нажатии {enter} происходит поиск, и в диалоговом окне отображаются только результаты поиска.

Вот код:

  function selectDesign(designName: string, designCode: string) {

  // enter search text & click enter

  cy.get(singlePickerSearch).type(designName + '{enter}', { force: true });

  // select your design from search results

  cy.get(designPickerDesign(designCode))
    .scrollIntoView()
    .should('have.length', 1)
    .click({ force: true });
}

Когда происходит сбой, это похоже на '{enter}'не был казнен.Я могу нажать Enter вручную, и он работает.

Поскольку это прерывистый сбой, получение журналов затруднено.

Каждый отдельный тест использует один и тот же дизайн.За один прогон проходит 19 тестов.Бегущий по тестам может найти файл 18 раз, а затем выполнить 1 тест.

Также попытался использовать обратные пометки в команде .type ():

cy.get(singlePickerSearch)
  .clear()
  .type(`${designName}{enter}`);

Заметного улучшения не произошло.

1 Ответ

0 голосов
/ 04 апреля 2019

Я, наконец, получил эту работу, используя следующее:

 function selectDesign(e2eDesign: any) {
//  open dodi picker
cy.get(createCardQueryOpenDodiPicker)
  .should('be.visible')
  .click()
  .then(() => {
    // wait for loader
    cy.get(loader).should('not.be.visible');
    // enter search text
    cy.get(dodiPickerSearchText)
      .clear()
      .type(`${e2eDesign.design.name}{enter}`)
      .then(() => {
        // wait for loader to go
        cy.get(loader).should('not.be.visible');
        // short wait to avoid intermittent failure here
        cy.wait(400);
        // select required design
        cy.get(dodiPickerItems)
          .should('have.length', 1) // should only be one match
          .click();
      });
  });

}

Я думаю, что последний .should ('have.length' 1) заставляет его ждать, пока это не станет истиной, прежде чем пытаться выполнить следующий оператор.

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