为了账号安全,请及时绑定邮箱和手机立即绑定

在赛普拉斯测试中创建一个变量来存储页面上的文本,以便将其与不同页面上的文本进行比较

在赛普拉斯测试中创建一个变量来存储页面上的文本,以便将其与不同页面上的文本进行比较

手掌心 2022-11-27 15:53:17
我正在尝试在我的 cypress 测试中创建一个变量,它允许我在单击链接并离开页面时存储来自一个网页的信息。我想比较第一页上的一个词和第二页上的一个词。describe("Logged-in Item Page", () => { before(() => {   cy.*login command*().then((*login stuff*) => {     cy.website_login(*login info*);   }); }); beforeEach(() => {   cy.visit(Cypress.env("baseUrl") + "*URL*") });  it("Verify My Store opens", () => {       return new Cypress.Promise(resolve => {         cy.get("*selector*").then($value => {           const storeName = $value.text().split(' ')[0];           resolve(storeName);         });         cy.log(storeName)       });   });});值得一提的是,我尝试将 var Storename; 在这个区域之外,并删除了 cy.get() 部分中的 var 关键字,但仍然没有运气。我也尝试做 const storeName 。javascript柏
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

由于其异步性质,当您storeName 在外部调用时.then($value => {,恰好回调尚未完成,因此未分配值。


相反,您可以使用 Cypress promises,这样 Cypress 就会等到 promises 被解决。


    it("Verify My Store opens", async () => {

        const storeName = await new Cypress.Promise((resolve) => {

            cy.get("selector").then($value => {

                resolve($value.text().split(' ')[0])

            })

        })

        cy.log(storeName)


   })


查看完整回答
反对 回复 2022-11-27
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信