如何使用赛普拉斯拦截来自外部处理程序的请求?

问题描述 投票:0回答:1

有谁知道如何拦截启动外部处理程序(例如电子邮件应用程序)的请求以获得

Request URL

启动外部应用程序的浏览器内请求如下所示:

Request URL:      mailto:[email protected]?Subject=Test&Body=test
Referrer Policy:  strict-origin-when-cross-origin

我正在尝试执行以下操作但它不起作用:

cy.intercept('mailto:**').as('mailto')

cy.get('#submitButton').click()

cy.wait('@mailto').its('request.url').should('contain.text', 'Subject')

它在

cy.wait('@mailto')
上失败,而 Cypress 界面中的
Routes
显示以下内容(它没有收到请求):

方法 路由匹配器 存根 别名 #
* 邮箱:** 没有 邮寄到 -

此外,已经尝试使用不同的 Cypress 版本:

6.4.0
6.9.1
8.2.0
.

希望有人能帮忙。提前致谢。

request cypress intercept
1个回答
0
投票

事实证明 mailto: 似乎不是请求,它更像是 HTML

<a>
中的链接... 一个请求通常有一个方法(GET、POST、DELETE)和一个URL,然后你可以使用
cy.intercept
拦截。 事实证明,当您单击包含 Mailto 的链接时,不会创建请求,该链接用于打开您的电子邮件客户端,因此您需要以另一种方式为该链接创建断言。

cy.intercept('POST', '/createuser*').as('createUser')
cy.wait('@createUser')

这是我用来拦截请求的方式,让测试在继续之前等待响应,它是针对您的前端向您的后端服务器或第三方服务发出的请求。

© www.soinside.com 2019 - 2024. All rights reserved.