访问get in then块的输出

时间:2018-08-14 17:58:34

标签: cypress

如何访问.then()函数中从.get()。contains()产生的元素

我的代码未进入Then块。我在哪里做错了?

cy.get(".c-header-listItem").contains("My Account").should(($link) => {
        expect(localStorage.read("CD-SessionId")).to.be.not.null;`enter code here`
    }).then(($link) => {
        $link.click();
    });

Cypess UI

我从赛普拉斯文档https://docs.cypress.io/api/commands/should.html#Subjects中获得了登录名

1 个答案:

答案 0 :(得分:1)

.should(elem => {})的行为与.then(elem => {})完全相同,只是传递给should的函数将重试,直到不引发任何异常为止。考虑到这一点,以下代码应该起作用:

cy.get(".c-header-listItem").contains("My Account").should(($link) => {
    expect(localStorage.read("CD-SessionId")).to.be.not.null;

    // Notice I have to wrap this to perform a Cypress 
    // click on it. $link is a native DOM object.
    cy.wrap($link).click();
});

这也可以,但是不需要分隔。

cy.get(".c-header-listItem").contains("My Account").should(($link) => {
    expect(localStorage.read("CD-SessionId")).to.be.not.null;
});

cy.get(".c-header-listItem").contains("My Account").click();