gpt4 book ai didi

browser - 是否可以使用 Cypress 将 `postMessage` 发送到应用程序?如何传递通过 `postMessage` 接收的数据?

转载 作者:行者123 更新时间:2023-12-04 14:19:23 47 4
gpt4 key购买 nike

我正在创建 Cypress e2e 测试,但是我们的应用程序作为父页面顶部的模态 (iframe) 打开。由于 Cypress 不支持 iframe,我决定尝试“独立”运行应用程序。但是,在启动应用程序时,它会通过 window.postMessage 从父页面获取数据(有关流和 session 的信息)。是否可以通过 Cypress 将此数据传递给应用程序?

我试图通过 cy.request 获取我们从后端接收的数据,它解决了 session 数据的问题,但我仍然无法弄清楚如何传递有关流的信息。

最佳答案

您可以发送 window.postMessage()在 Cypress 。由于 Cypress 在您的应用程序旁边的浏览器中运行,因此它可以访问所有 Web API。

为了获得对应用程序的window 对象的引用,您可以使用cy.window()

综合起来,这就是您向被测应用程序发送 postMessage 的方式:

cy.window() // get a reference to application's `window`
.then($window => {
const message = 'some data here'
$window.postMessage(message, '*')
})

关于browser - 是否可以使用 Cypress 将 `postMessage` 发送到应用程序?如何传递通过 `postMessage` 接收的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56662776/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com