Как добавить значения, содержащиеся в тегах span, с помощью Cypress.io? - PullRequest
0 голосов
/ 24 января 2019

Мне нужно пройти через группу тегов, с которыми связан определенный класс и которые имеют текстовое значение.

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

<span class="property-ut text-old">12.50</span>
<span class="property-ut text-old"></span>
<span class="property-ut text-old"></span>
<span class="property-ut text-old">.50</span>
<span class="property-ut text-old">1.50</span>

Я ожидаю сохранить значение 14.50 в переменной и сравнить его с некоторым другим значением на экране.

Ответы [ 2 ]

0 голосов
/ 31 июля 2019

Нет необходимости использовать jQuery здесь, у Cypress есть метод 'each': https://docs.cypress.io/api/commands/each.html#Syntax

Сумма будет представлена ​​в виде текста, поэтому вам нужно преобразовать ее в неконкат.Это также удаляет запятые, если у вас есть значения> 1000

let sum = 0
let expectedVal = 14.50
cy.find('.old-text').each(($li, index, $lis) => {
  sum += parseFloat($li.text().replace(',', ''))
  if(index == $lis.length - 1) {
    assert.equal(expectedVal, sum, 'Expected value equals sum of each line item')
  }
}

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

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

Создан локальный сервер с вышеуказанным тегом html span в div с идентификатором #mySpantext. Использовал функцию jquery each для итерации каждого класса span и вычислил sum текста span, как показано ниже;

var sum = 0;
Cypress.$('.text-old').each(function() {
  sum += +Cypress.$(this).text()||0;
});

Полный тест кипариса, как написано ниже;

describe('Sum of the span element values in Cypress', function() {
  it('Sum of the span element', function() {
    cy.visit('http://localhost:8080/test')
    cy.get('#mySpantext').find('span').then(() => {     
    var sum = 0;
    Cypress.$('.text-old').each(function() {
      sum += +Cypress.$(this).text()||0;
    });
    cy.log("Total sum of all span elements:"+sum);
    expect(sum).to.equal(14.5)
    })
  })
})

Результаты испытаний, приведенные ниже, с правой стороны, подсвечивают значения текста диапазона; enter image description here

...