Automated tests 单击发送请求时Cypress 400 XHR错误

Automated tests 单击发送请求时Cypress 400 XHR错误,automated-tests,cypress,end-to-end,Automated Tests,Cypress,End To End,我已经和cypress一起工作一天了。我有一个按钮,一旦你点击它就会刷新页面,之后的一些测试仍然会通过 单击此按钮将抛出400错误。(请求后) 我可以单击页面上的其他按钮,也可以在浏览器的新选项卡中手动执行。但一旦测试自动化,它就会失败 我读了一些案例: 但似乎没有人能够解决这个问题 index.js test.js cypress.json HTTP 400状态代码代表。(即,发送到API端点的请求不是API期望的请求)。 如果所述HTTP请求是从您的应用程序发送的,而不是直接从Cypres

我已经和cypress一起工作一天了。我有一个按钮,一旦你点击它就会刷新页面,之后的一些测试仍然会通过

单击此按钮将抛出400错误。(请求后)

我可以单击页面上的其他按钮,也可以在浏览器的新选项卡中手动执行。但一旦测试自动化,它就会失败

我读了一些案例:

但似乎没有人能够解决这个问题

index.js

test.js

cypress.json


HTTP 400状态代码代表。(即,发送到API端点的请求不是API期望的请求)。 如果所述HTTP请求是从您的应用程序发送的,而不是直接从Cypress发送的,那么发出请求的应用程序代码可能有点错误

检查浏览器上的“网络”选项卡,并尝试手动复制发送到外部(?)API的请求


注意:通常在测试过程中,存根(模拟)来自外部实体的响应是常见的做法,但首先必须确保传出的请求是正确的。否则,您可能会掩盖应用程序中的错误。

更新后,打开新选项卡时,我可以在同一浏览器中手动发送请求。以及通常在我自己的浏览器中。无论何时,它都是自动化的fails@Pwntastic如果您使用Cypress打开浏览器并加载站点,当您尝试在该浏览器中手动执行步骤时会发生什么?如果我手动执行所有操作,则一切正常。是否在cypress浏览器中@NATN232
module.exports = (on, config) => {
  on('before:browser:launch', (browser, launchOptions) => {
    if (browser.name === 'chrome') {
      launchOptions.args.push('--disable-site-isolation-trials');
      launchOptions.args.push('--incognito')
      return launchOptions
    }
  })
}
context('Checkout Purchase', () => {
    describe('Checkout Form', () => {
        it('Tests Promo Codes', () => {
            cy.wait(2000);
            cy.get('#promoCode')
            .type('bw-nw-testing')
            .should('have.value', 'bw-nw-testing')
            cy.get('#applyPromoCodeButton')
              .click()
              .wait(2000)
        })
        })
})
{
  "projectId": "lkj8fdj",
  "chromeWebSecurity": false,
  "baseUrl": "http://localhost:3000"
}