如何在 Cypress 中获取 baseURL 的值

94
我刚开始学习JavaScript并且一直在使用Cypress自动化一些回归测试。我当前正在编写的测试旨在验证页眉和页脚中链接的文本和href。但是,我遇到的问题是这些测试需要在各种不同的环境中运行,而我似乎无法访问cypress.json中设置的baseUrl属性以便在我的断言中设置域名。在接下来的脚本中,这是代码行cy.get("a").should("have.attr", "href", baseUrl + footerLink.link)

    it.only("translates the content info section", () => {
      cy.wrap(orbitData).each(service => {
        cy.visit(service.name);
        cy.get("#orb-contentinfo > div > ul > li").each(($li, index) => {
          let footerLink = service.links[index]
          cy.wrap($li).should("have.text", footerLink.linkText)
          .within(($li) => {
            cy.get("a").should("have.attr", "href", baseUrl + footerLink.link)
          });
        });
      });
    });
到目前为止,我已经尝试了许多事情,有点不好意思把它们全部列出来,因为我对此很陌生,所以它们可能很疯狂,肯定只是猜测;其中包括 Cypress.env('CYPRESS_baseUrl')Cypress.baseUrl。每次都返回undefined
如果我在完全错误的方向上攻击这个问题,请指导更好的方法。感谢任何帮助或指导,谢谢。
3个回答

163

您可以使用Cypress.config()命令。

要获取baseUrl值,请使用Cypress.config().baseUrlCypress.config('baseUrl')


11

cy.visit('/') 会访问 baseUrl,如果你在 Cypress e2e 配置中定义了它。(来源)


这是一个比被接受的回答更好的答案,cy.visit('') 也可以工作。 - Martijn
Cypress 表示:“Cypress 不再支持 cypress.json,请从您的项目中删除它。” - Marco Antonio
所以我在 e2e 中添加了 cypress.config.js,它起作用了。 - Marco Antonio
我更新了我的回答。实际上,cypress.json已经被弃用了,现在你应该将它添加到cypress.config.ts|js中的e2e对象内。 - Jakob Jan Kamminga

-3

在使用Cypress 7.7时,我发现Cypress.env('baseUrl')起作用了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接