Cypress: проверить, существует ли элемент без исключения - PullRequest
0 голосов
/ 16 января 2019

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

Я пытался использовать jQuery, но это привело к бесконечному циклу:

describe('test reloading', function () {
  it('testSelector reload', function () {
    cy.visit('https://docs.cypress.io/api/utilities/$.html#Usage');
    let found = false;
    while (!found) {
      const nonExistent = Cypress.$('.fake-selector');

      if (!nonExistent.length) {
        cy.reload();
      } else {
        found = true;
      }
    }
  });
});

1 Ответ

0 голосов
/ 16 января 2019

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

describe('test reloading', function () {
    it('testSelector reload', function () {
      cy.visit('https://docs.cypress.io/api/utilities/$.html#Usage')
      let found = false
      let count=0
      while (!found) {

        const nonExistent = Cypress.$('.fake-selector')

        if (!nonExistent.length) {
          cy.reload()
          found = false
          count=count+1
          cy.wait(1000)
          if(count==30)
          {
            found = true
            cy.log('Element not found after 30 seconds..Exit from loop!!!')
          }
        } else {
          found = true
        }
      }
    })
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...