Хранение массива элементов с использованием Cypress - PullRequest
1 голос
/ 14 апреля 2020

Я хочу сохранить массив строк, взятых со страницы, используя кипарис.

пока у меня есть:

cy.get(".product-name").each(($el) => {
  let text = $el.text();

  cy.request("POST", "http://localhost:3000/sale-items", {
    text
  });
  cy.wait(1000);
});

Как вы видите, мне приходится делать отдельные запросы на каждый предмет. Но я хочу как-то сохранить весь массив, а затем сделать один запрос.

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

Как сохранить массив элементов, созданных с помощью команд Cypress?

Ответы [ 2 ]

2 голосов
/ 15 апреля 2020

Вы можете использовать .then() вместо .each(), чтобы получить все элементы, классифицированные как «product-name». Параметр представляет собой итеративную коллекцию, которую можно преобразовать в массив.

Ref Array.from

cy.get(".product-name").then(($els) => {

  const texts = Array.from($els, el => el.innerText);

  cy.request("POST", "http://localhost:3000/sale-items", {
    texts
  });
  cy.wait(1000);
});
0 голосов
/ 15 апреля 2020

cypress предоставляет метод .each ($ elem, index, $ list) для итерации каждого элемента массива.

cy.get(".product-name").each(($els, index, $list) => {
   // $list itself is collection of element
   // $elem is each element of array
   // index is postion of element in array
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...