Условные действия пользовательского интерфейса - PullRequest
1 голос
/ 07 февраля 2020

Я пишу кипарисовый тест и пытаюсь выяснить, когда я мог выполнять действия, основываясь на том, появляется экран spla sh или нет.

Например:

   it('Test 2',()=>{
       if(cy.get('#center-tile-banner-popup'))
       {
          cy.get('[title="Accept Cookies"]').click();
       }
       cy.get('.media-object ').click(10, 10);
    })

Есть идеи, как этого добиться?

1 Ответ

1 голос
/ 08 февраля 2020

Пара вещей с вашим кодом,

  • cy.get() не возвращает логическое значение для if() для проверки, поэтому вы не можете использовать его там.

  • cy.get() не проходит тест, если селектор не найден, поэтому, если экран spla sh отсутствует, последняя строка не будет выполнена.

Один из способов проверить работоспособность селектора без сбоев - использовать JQuery, который предоставляется для глобального Cypress.$().

Вот пример теста для иллюстрации,

HTML

<div class="maybe"></div>
<div class="anotherDiv"></div>

Spe c

before(() => {
    cy.visit('/app/conditional-execution.html')
})

it('conditional execution - element found', () => {
  cy.get('div.maybe')  // fails test and stops here if not found

  const $element = Cypress.$('div.maybe')  // non-failing check, returns JQuery object
  const exists = !!$element.length;        // convert JQuery object to a boolean

  console.log('Element found?', exists);

  if (exists) {
    // Conditional commands
  } 

  // Commands to execute if found or not
  cy.get('div.anotherDiv')  

})

it('conditional execution - element not found', () => {
  const $element = Cypress.$('div.maybeNot')  // non-failing check, returns JQuery object
  const exists = !!$element.length;           // convert JQuery object to a boolean

  console.log('Element found?', exists);

  if (exists) {
    // Conditional commands
  } 

  // Commands to execute if found or not
  cy.get('div.anotherDiv')  

})

Это будет ваш синтаксис

if(Cypress.$('#center-tile-banner-popup').length) {
  cy.get('[title="Accept Cookies"]').click();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...