所以我在函数外部声明了一个变量为空字符串 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')
有人能帮我理解我如何声明变量以便它在函数外部可用,因为我需要这样做几次
你可以包装你的变量并在别处获取它。你可以试试
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')