automated-tests - 点击发送请求时出现 Cypress 400 XHR 错误
问题描述
我已经和 cypress 合作了一天。我有一个按钮,一旦你点击它就会刷新页面,之后的一些测试仍然会通过。
单击此按钮将引发 400 错误。(发帖要求)
我可以单击页面上的其他按钮,也可以在浏览器中的新选项卡中手动执行此操作。但是一旦测试自动化它,它就会失败。
但似乎没有人能够解决这个问题。
index.js
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
}
})
}
测试.js
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)
})
})
})
柏树.json
{
"projectId": "lkj8fdj",
"chromeWebSecurity": false,
"baseUrl": "http://localhost:3000"
}
解决方案
HTTP 400 状态码代表Bad-Request。(即发送到 API 端点的请求不是 API 所期望的请求)。如果所述 HTTP 请求是从您的应用程序发送的,而不是直接从赛普拉斯发送的,则发出请求的应用程序代码可能有些错误。
检查浏览器上的网络选项卡,并尝试手动复制发送到外部(?)API 的请求。
注意:通常在测试期间,存根(模拟)来自外部实体的响应是一种常见的做法,但首先您必须首先确保传出请求是正确的。否则,您可能会掩盖应用程序中的错误。
推荐阅读
- ios - Xcode iOS 错误 nw_connection_receive_internal_block_invoke
- c# - 在 VS c# 中添加新项目 UserControl Form 后出错
- kubernetes - 使用 istio 为服务设置指标的指南
- django - 通过 user_id 从数据库中过滤结果
- websocket - 返回 Django 石墨烯订阅中订阅事件的初始数据
- go - 用于公共和私有路由中间件的 httprouter 和 negroni
- r - 特定列的 R 中每个分组变量的gather()
- clojure - 通过顺序调用 main 函数然后在它们之间进行通信来运行两个 clojure 代码
- javascript - Sequelize - TypeError:无法读取未定义的属性“定义”
- javascript - 如何在 VUE js 中为直播网站编写自动调用功能?