在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关键字,但仍然没有成功。我也试着改为使用conststoreName。

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

相反,您可以使用Cypress承诺,因此Cypress将等待承诺得到解决。

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)
})

最新更新