如何在 cypress 中声明一个变量,使其在函数外部可用

问题描述 投票:0回答:1

所以我在函数外部声明了一个变量为空字符串 let content = "" 并且在函数内部我给了它一个值。所以我知道函数内部正在工作并更新状态但是当我到达最后一行时它失败并显示以下错误消息

cy.contains() 不能传递空字符串。

这是我正在运行的代码

let content = "";
  //Check what the value of the status is and select another status value


cy.get('h3').contains("Financial Account Status Change").closest("form").find('span').eq(1).then((el) => {
            content = el.text();
            if (content == "00 (Active)") {
               cy.get('.modal-body > :nth-child(2) > .col-sm-9 > .form-control').select('05 (Decline)')   
            } else             {
            cy.get('.modal-body > :nth-child(2) > .col-sm-9 > .form-control').select('00 (Active)')
            } 
         });

        
      
  cy.get('.modal-body > :nth-child(3) > .col-sm-9 > .form-control').type('No Good Reason')
  cy.get('.modal-body > :nth-child(4) > .col-sm-9 > .form-control').type('Testing Memo')
  //Check the cancel button works
  cy.get('.btn').contains('Cancel').should('be.visible').click()
  //Check the status hasnt changed
  cy.get('.ng-binding > .ng-scope > .glyphicons').click()
  

这是失败的路线

cy.get('.ng-binding').parents('.ng-scope').contains(content).should('be.visible')

有人能帮我理解我如何声明变量以便它在函数外部可用,因为我需要这样做几次

variables automation cypress
1个回答
0
投票

你可以包装你的变量并在别处获取它。你可以试试

cy.get('h3').contains("Financial Account Status Change").closest("form").find('span').eq(1).then((el) => {
     content = el.text();
     ...
     return cy.wrap(content).as('MyCustomContent')
         });

之后

cy.get('.ng-binding').parents('.ng-scope').contains('@MyCustomContent').should('be.visible')
© www.soinside.com 2019 - 2024. All rights reserved.