Jar*_*red 5 permissions local-storage node.js puppeteer
我正在创建一个新页面page = browser.newPage()。page.setContent(...)然后我设置包含脚本的html 内容。
脚本加载后,我对其进行调用,该调用会尝试使用该脚本,或者localStorage在此时我收到访问被拒绝错误:
Error: Evaluation failed: DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
根据我的理解,这是因为为了写入 localStorage,必须有一个原始集 - 在我的情况下我没有。
如果我将代码更改为首先导航到 url page.goto('http://localhost'),然后执行 html 注入,则我可以毫无问题地写入 localStorage。
有没有一种方法可以写入 localStorage 而无需先访问现有 URL?
小智 4
对于任何未来为此苦苦挣扎的人。无法在没有来源的情况下设置本地存储数据。如果您无法导航到某个页面,则可以使用此处描述的请求拦截。这也比调用网络中的随机页面要快得多。
await page.setRequestInterception(true)
page.on('request', request => {
request.respond({ status: 200, contentType: 'text/html', body: '' })
})
await page.goto('http://127.0.0.1')
Run Code Online (Sandbox Code Playgroud)
之后,您就可以设置该页面的本地存储。
| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |