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.
我们的应用程序使用浏览器会话存储来存储将由 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.