TestCafe window.sessionStorage.getItem() returns 空

TestCafe window.sessionStorage.getItem() returns null

我们的应用程序使用浏览器会话存储来存储将由 child window 读取的信息。

有示例场景: 用户点击 link 打开 child window。新 window 用 window.open() 打开,然后我们将信息存储在 child 的会话存储中。当加载 child window 时,它将从会话存储中获取信息。

问题: 当 child window 尝试从会话存储中获取值时(使用:window.sessionStorage.getItem('my_key'))它 returns null 并且由于此应用程序无法正常工作当 TestCafe 中的 运行 和测试失败时。

在 chrome 开发工具中,我可以看到会话存储具有此值。我打印控制台 window.sessionStorage 下的内容,它 returns 代理 object (见截图):

我检查过,提供给 window.sessionStorage.getItem 的密钥是正确的,我还注意到 'internal -> nativeStorage' 下是我正在寻找的值(在屏幕截图上不可见,因为我无法显示这个数据)。

我不知道这是一个错误还是我只需要配置一些东西但我没有在 google 中找到有关它的信息。

有没有可能让TestCafe在这种情况下按预期工作?如果是,如何?

发生这种情况是因为 TestCafe 无法在同一 window 中的新选项卡中打开页面,而在新选项卡中打开页面 window 会创建一个新的 session Storage.要解决此问题,您可以使用 disableMultipleWindows.