Cypress 文件上传失败的解决方法

Cypress 文件上传失败, 查看 network 可以看到请求头确实了很多信息:

cy.get("#xxxx").selectFile("/tmp/yyyyy.png", { force: true });

经过各种官网的(selectFile https://docs.cypress.io/api/commands/selectfile) 的方法都不行.

最后发现一种方式可以解决这个问题, 添加一个请求的拦截:

    cy.intercept("POST", "**/api/v1/file/upload");

注意这这里的路径是你文件上传的路径 (前面的 ** 不用改)

这个行为看起来像是 Cypress 处理请求时的一个边缘情况。当你添加 cy.intercept() 时,Cypress 拦截并处理了该请求,这可能无意中解决了某些问题。

可能的原因:

  1. 请求时序问题: cy.intercept() 可能无意间改变了请求的时序。例如,上传操作可能在某些场景下与其他后台操作冲突,而 cy.intercept() 的加入改变了这种时序,从而避免了冲突。
  2. 自动等待处理: Cypress 可能在检测到网络请求拦截时,自动等待请求完成后再继续执行测试,这无意中可能规避了某些 race condition(竞态条件),从而使请求成功。
  3. 请求被修改或重发: 虽然 cy.intercept() 没有明确修改请求,但它可能触发了某些机制,比如重新发送请求或修正请求头。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值