提问人:VineAndBranches 提问时间:11/14/2023 最后编辑:VineAndBranches 更新时间:11/14/2023 访问量:31
为什么cy.intercept/cy.wait无法捕获我的HTTP请求?
Why won't cy.intercept/cy.wait catch my HTTP request?
问:
我正在尝试编写 Cypress (v13.1.0) 单元测试并用于捕获 HTTP 调用。此调用在用户按下按钮后发生。根据阅读文档,我按以下顺序设置测试:-{userActionHere}-。但是,呼叫永远不会被拦截。cy.intercept
GET
GET
cy.intercept
cy.wait
GET
例:
describe("API Tests", () => {
it("get copy-style", () => {
cy.intercept("GET", "http://localhost:7771/api/agent/report/copy-style").as("getStyle");
openReport(undefined, testReport_demo);
cy.visit("/#/");
cy.get("rec-list").find('[data-cy="acceptButton"]').click();
cy.wait("@getStyle").then((interception) => {
console.log("The @getStyle result: ", interception);
});
});
});
结果:
Timed out retrying after 5000ms: cy.wait() timed out waiting 5000ms for the 1st request to the route: getStyle. No request ever occurred.
我还尝试了以下方法,但结果相同,没有拦截:
- 捕获任何 HTTP 请求(例如 ),但它仍然不会被拦截。
cy.intercept("**")
- 在这种情况下,我们抓住了一些要求某些图像资产的电话,但这些与我想要的无关。我没有一个电话被捕获。
GET
/api/agent/**
- 在这种情况下,我们抓住了一些要求某些图像资产的电话,但这些与我想要的无关。我没有一个电话被捕获。
- 使用各种路径变体(例如,“api/agent/report/copy-style”、“api/agent/**”、“**api**”等)。
cy.intercept
- 移动按钮点击前。
wait
- 增加等待超时(例如,
cy.wait("@getStyle", {timeout: 30000}
) - 用于在等待之前手动单击 UI 中的按钮。
cy.pause()
- 在 期间手动单击该按钮。
cy.wait()
在所有情况下,我都可以看到通过 WireShark 和/或浏览器的“网络”选项卡进行的 HTTP 调用,并且返回正确的响应数据,但 Cypress 没有看到它。看到很多帖子提到,但这些帖子似乎已被弃用。还没有找到对我有帮助的帖子。cy.server
cy.route
答: 暂无答案
评论