gpt4 book ai didi

python - 堆快照 Selenium webdriver python

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:15 24 4
gpt4 key购买 nike

有什么方法可以从 Selenium webdriver 获取堆快照吗?我目前正在使用 Chrome 和 Chrome 驱动程序。

据我了解,Inspector 和 Selenium 都通过同一端口连接。在检查器中,它提供了拍摄堆快照的方法。我在想,这应该可以通过 Selenium 实现,因为两者的工作方式类似。

谢谢。

编辑:通过传递下面的代码,我能够获取堆快照。

import json
jsonobj=driver.execute_script(":takeHeapSnapshot")
f = filename('heap','w')
f.write(json.dumps(jsonobj))
f.close

但是当我在 Chrome 中加载时,出现错误:请求调用“close”方法时发生错误

SyntaxError: Unexpected token , at Object.parse (native) at Object.WebInspector.HeapSnapshotLoader._parseStringsArray (chrome-devtools://devtools/bundled/profiler/heap_snapshot_worker/HeapSnapshotWorker.js:748:117) at Object.WebInspector.HeapSnapshotLoader.close (chrome-devtools://devtools/bundled/profiler/heap_snapshot_worker/HeapSnapshotWorker.js:737:6) at Object.WebInspector.HeapSnapshotWorkerDispatcher.dispatchMessage (chrome-devtools://devtools/bundled/profiler/heap_snapshot_worker/HeapSnapshotWorker.js:789:95)

我尝试将该文件与从 Chrome 保存的实际 HeapSnapshot 进行比较。标签/名称似乎存在于不同的位置,但它是有效的 JSON 文件。 (使用 jsonlint 验证)。

任何机构都有关于 chrome-inspector->Profile 如何需要 JSON 文件的详细信息吗?

最佳答案

您需要创建可流式传输的 json 以便开发工具读取它。像这样:

{
"snapshot":{ }
,
"nodes": { }
,
"edges":[]
,
"trace_function_infos":[]
,
"trace_tree":[]
,
"samples":[]
,
"strings":[]
}

通过 Javascript 示例来了解这个想法:

var open = '{\n', close = '\n}\n';
var keys = [];
for (var key in json) {
keys.push('"' + key + '":' + JSON.stringify(json[key]));
}

var str = open + keys.join('\n,\n') + close;

您还可以查看JSONStream NodeJS 模块了解更多信息

按键顺序也很重要。顺序为:['snapshot', 'nodes', 'edges', 'trace_function_infos', 'trace_tree', 'samples', 'strings']

关于python - 堆快照 Selenium webdriver python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25890825/

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