В Cypress, есть ли способ избежать сбоя в зависимости от ежедневного сообщения? - PullRequest
1 голос
/ 03 октября 2019

Я разрабатываю инструмент тестирования с использованием Cypress для веб-страницы, которая в данный момент доступна. Проблема в том, что иногда я получаю модальное отображение новых функций, событий и т. Д .;и это нарушает остальные тесты.

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

   it('Visits habitica and logins correctly', function () {
        cy.visit('https://habitica.com/login')
        cy.get('form').find('input[id="usernameInput"]').click().type("username")
        cy.get('form').find('input[id="passwordInput"]').click().type("password")
        cy.get('.btn-info').click() 
        cy.get('.modal-dialog').find('button[class="btn btn-warning"]').click()
        cy.get('.start-day').find('button').click({force:true})
    })

1 Ответ

0 голосов
/ 03 октября 2019

Это модальный браузер или модал, разработанный вашей командой? В первом случае Cypress должен автоматически принять модал. Во втором случае вы можете обойти это, только принимая его, когда он виден. Вы можете сделать это, добавив это в ваш скрипт:

cy.get('body').then($body => {
  if ($body.find('IDENTIFIER_FOR_THE_MODAL').length === 1) {
    cy.get('IDENTIFIER_TO_CLOSE_THE_MODAL')
      .click()
  }
})

Он ищет в теле модальный тип (конечно, вы должны изменить IDENTIFIER_FOR_THE_MODAL на правильный идентификатор). Если он находит модальное, скрипт ищет IDENTIFIER_TO_CLOSE_THE_MODAL, чтобы закрыть модальное и щелкает по нему.

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

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