【问题标题】:Testing that page is not 404 page with Cypress and Gatsby使用 Cypress 和 Gatsby 测试该页面不是 404 页面
【发布时间】:2021-08-07 21:51:37
【问题描述】:

我有一个 Gatsby 网站。如果我点击了一个不存在的网址,Gatsby 会提供一个 404 页面,但它不会更改网址。

我正在使用 Cypress 测试这个网站。赛普拉斯推荐的在站点内测试导航的方法是使用location,但是在这种情况下,检查导航到的页面的路径名是不可靠的,如果该页面不存在,它仍然会有和它一样的路径名。例如,如果我让 Cypress 到 cy.click() 的链接,其 href 为 /incorrect-url/,并测试它的 pathname,我会通过测试,即使加载的页面是 404 页面,而不是我的页面期待。

我知道我可以测试我所导航到的页面上是否存在我所期望的元素,但我更喜欢一种可靠的方法来了解页面是否为 404d(Gatsby 返回带有 404 状态代码的页面)。

总结一下:

  • 检查位置/路径名并不是测试特定页面是否已加载的可靠方法
  • 我不想通过检查页面上的元素来进行验证

肯定有办法验证页面加载时是否没有 404 状态代码。

如何可靠地检查导航到的页面不是 404 页面。

【问题讨论】:

    标签: testing url http-status-code-404 gatsby cypress


    【解决方案1】:

    我知道这个问题是在 2 个月前提出的,所以希望您已经找到了验证状态的方法,但作为将来的参考,您可以向链接的 href 属性发出请求。然后,您将可以访问状态代码。

    cy.get(SELECTOR FOR YOUR LINK).then((link) => cy.request(link.prop('href')).its('status').should('eq', 200));
    

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2018-10-10
      • 2020-07-21
      相关资源
      最近更新 更多