Итерация по элементам - PullRequest
       7

Итерация по элементам

0 голосов
/ 28 февраля 2019

У меня есть страница с несколькими Results панелями, каждая панель имеет свою собственную кнопку удаления.

Я написал Cypress-тест для проверки процесса удаления, тест работает, как и ожидалось, панель удаляется:

cy.get('div[data-test="Results"]')
  .first()
  .within(() => {
    cy.get('p[data-test="Contact ID"]').then($match => {
      contactID = $match.html();
      cy.get('button[data-test="Delete Contact"]')
        .click()
        .get('div[data-test="Delete Record Modal"]')
        .should('be.visible')
        .get('button[data-test="Confirm Deletion"]')
        .click();
    });
  });

Далее я пытаюсь определить, была ли удалена правильная панель.Как я могу перебрать все <p /> всех панелей и убедиться, что ни одна из них не имеет contactID, равную той, которая была удалена?

Я попробовал это:

cy.get('p[data-test="ContactID"]').then($match2 => {
  expect($match2.text()).not.to.eq(contactID);
});

Но в $match2 я получаю все идентификаторы контактов, например: 12345678 вместо 1234 и 5678

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете использовать each:

cy.get('p[data-test="ContactID"]').each(($match) => {
  cy.wrap($match).invoke('text').should('not.eq', contactID)
})
  • invoke, вызывая функцию на объекте, в этом случае .text()
  • в цепочке .shouldделает утверждение на этом тексте
  • , и оно будет повторяться до тех пор, пока оно не пройдет или не истечет время ожидания (см. retry-Способность ) из-за cy.wrap
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...