如何在 Cypress 中使用 then() 并获取值

OSW*_*OSW 4 javascript testing end-to-end cypress

我有一个值为2的span元素。我想检查该值是否大于0,但是在网上检查并实现了每个方法后,它都不起作用......

这是我记录 $span 时的控制台

在此输入图像描述

我知道 Cypress 是异步工作的,所以我用它.then()来获取元素的文本。如何获取 2 的值并执行以下 if-else 操作?

超文本标记语言

<div>
  <span class="badge ml-1 badge-primary">2</span>
</div>
Run Code Online (Sandbox Code Playgroud)
   cy.get(".badge.ml-1.badge-primary").then(($span)=> {
     if($span.text().includes(0)) {
      doFunction1()
    } else {
      cy.get(xxxxx)
    }
 )}
Run Code Online (Sandbox Code Playgroud)

Let*_*ave 5

通过链接转换方法来实现 from element-> text->number

cy.get(".badge.ml-1.badge-primary")
  .invoke('text')                    // to text
  .then(text => +text)               // to number
  .then(value => {
    if(value > 0) { 
      doFunction1()
    } else {
      cy.get(xxxxx)
    }
  })
Run Code Online (Sandbox Code Playgroud)

等待价值2

cy.get(".badge.ml-1.badge-primary")
  .invoke('text')                    // to text
  .then(text => +text)               // to number
  .should('eq', 2)                   // wait for value 2
  .then(() => {
    doFunction1()                    // now doFunction
  })
Run Code Online (Sandbox Code Playgroud)