【问题标题】:How can I use session storage in a Puppeteer script?如何在 Puppeteer 脚本中使用会话存储?
【发布时间】:2021-12-31 17:34:34
【问题描述】:

我正在尝试从打开浏览器的 Puppeteer 脚本中收集遭遇 ID。我在 AWS 合成金丝雀中运行这些脚本。它没有运行,错误显示:

sessionStorage 未定义堆栈

这是我使用的代码

let data = sessionStorage.getItem('aw-encounter-id');

【问题讨论】:

  • 请张贴代码来说明错误的最小重现性(删除所有不相关的代码)。您还可以使用 synthetics-canaries 在本地运行 Canaries。
  • 您需要在检索之前设置一个项目。此外,您可能想改用 localStorage。 localStorage 允许在浏览器中保存键/值对。存储在同一来源的所有选项卡和窗口之间共享。数据不会过期。它在浏览器重启甚至操作系统重启后仍然存在。
  • 您是在网页本身还是在节点中运行sessionStorage.getItem('aw-encounter-id');?如果在节点中,您可能需要了解差异:stackoverflow.com/a/52046312
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: javascript node.js amazon-web-services puppeteer


【解决方案1】:

浏览器(Puppeteer)需要支持 sessionStorage。这篇文章可能会有所帮助:

https://newbedev.com/puppeteer-how-to-store-a-session-including-cookies-page-state-local-storage-etc-and-continue-later

据此,如果您初始化传递数据目录,它可能会起作用:

   puppeteer.launch({userDataDir: '/tmp/myChromeSession'});

【讨论】:

猜你喜欢
  • 2014-05-27
  • 2016-07-29
  • 2015-03-12
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
相关资源
最近更新 更多