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

我正在尝试在我的 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柏


手掌心
浏览 100回答 1
1回答

MMMHUHU

由于其异步性质,当您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)   })
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript