Как я могу использовать Cypress для извлечения множества элементов, а затем провести тест по каждому из этих элементов?Javascript

Форум по Javascript
Ответить
Anonymous
 Как я могу использовать Cypress для извлечения множества элементов, а затем провести тест по каждому из этих элементов?

Сообщение Anonymous »

У меня есть большое меню на моем сайте. Я хочу создать тест, который тестирует каждую ссылку индивидуально в своей собственной функции .

Код: Выделить всё

let linkArr = [];
describe('I am on desktop view of a page to check the main menu links', () => {
before(() => {
cy.visit(pageUrl);
cy.get('.main-header a').each(($link) => {
linkArr.push($link);
})
});

linkArr.forEach(link => {
it(`Ensures the link works`, () => {
checkLink(link);
const linkText = (link.prop('text').replace("/n", "")).trim();
stepReportNotes(reportObj, testName, `${link.prop('href')} on '${linkText}' returns 200 or 301`);
});
});
});
< /code>
Но это не так. Цикл Foreach 
, по -видимому, работает одновременно с функцией до () , так что Linkarr пуст.
Это выполняет свою работу, если я обернут foreach в It Eg:

Код: Выделить всё

it(`Ensures each link works`, () => {
linkArr.forEach(link => {
checkLink(link);
const linkText = (link.prop('text').replace("/n", "")).trim();
stepReportNotes(reportObj, testName, `${link.prop('href')} on '${linkText}' returns 200 or 301`);
});
});
Но тогда я на самом деле выполняю только один шаг, и если одна ссылка не удастся, этот весь шаг терпит неудачу.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... st-against
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»