最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to get text from two elements, convert them to a number and add them in cypress? - Stack Overflow

programmeradmin2浏览0评论

I'm moving tests from protractor to cypress.

I have two elements like below. I want to get the number and add them and store them in a variable.


<span id="num-2">20</span>

In protractor I wrote it like below

var totalCount =
      parseInt(element(by.id('num-1')).getText()) +
      parseInt(element(by.id('num-2')).getText());

I can't figure out how to do it in Cypress.

I'm moving tests from protractor to cypress.

I have two elements like below. I want to get the number and add them and store them in a variable.


<span id="num-2">20</span>

In protractor I wrote it like below

var totalCount =
      parseInt(element(by.id('num-1')).getText()) +
      parseInt(element(by.id('num-2')).getText());

I can't figure out how to do it in Cypress.

Share Improve this question asked Jul 15, 2021 at 18:20 autotestautotest 632 silver badges5 bronze badges 2
  • Are you planning to assert/expect the two values equal some specific value? It's actually anywhere near as straightforward to save values to a variable within a single test. – Alexander Staroselsky Commented Jul 15, 2021 at 18:57
  • yes, I need to assert the total count with another value. – autotest Commented Jul 15, 2021 at 18:59
Add a ment  | 

1 Answer 1

Reset to default 5

You can achieve aliases/variables and get. The trick is that get, invoke, or similar are effectively async and you can't really effectively await cypress operations. Instead you can get the first number, parse it, get the second number, parse it, add the numbers and assert/expect:

const expectedTotal = 42;

// get element with id #num-1
cy.get('#num-1').then(($num1) => {
  // parse text to int/number
  const num1 = parseInt($num1.text());

  // get element id #num2
  cy.get('#num-2').then(($num2) => {
    // parse text to int/number
    const num2 = parseInt($num2.text());
    
    // expect/assert number total equal to some expected total
    expect(num1 + num2).toEqual(expectedTotal);
  });
});

Hopefully that helps!

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论