Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
堆快照SeleniumWebDriver python_Python_Selenium_Webdriver - Fatal编程技术网

堆快照SeleniumWebDriver python

堆快照SeleniumWebDriver python,python,selenium,webdriver,Python,Selenium,Webdriver,有没有办法从Selenium webdriver获取堆快照? 我目前正在使用Chrome和Chrome驱动程序 我知道Inspector和Selenium都通过同一端口连接。 在inspector中,它提供了获取堆快照的方法。 我在想,这应该可以通过Selenium实现,因为两者的工作方式相似 谢谢 编辑: 通过传递下面的代码,我能够获得堆快照 import json jsonobj=driver.execute_script(":takeHeapSnapshot") f = filename(

有没有办法从Selenium webdriver获取堆快照? 我目前正在使用Chrome和Chrome驱动程序

我知道Inspector和Selenium都通过同一端口连接。 在inspector中,它提供了获取堆快照的方法。 我在想,这应该可以通过Selenium实现,因为两者的工作方式相似

谢谢

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

import json
jsonobj=driver.execute_script(":takeHeapSnapshot")
f = filename('heap','w')
f.write(json.dumps(jsonobj))
f.close
但当我加载Chrome时,它会给我错误: 请求调用方法“close”时出错

SyntaxError:意外标记, at Object.parse(本机) 在Object.WebInspector.HeapSnapshotLoader-devtools://devtools/bundled/profiler/heap_snapshot_worker/HeapSnapshotWorker.js:748:117) 在Object.WebInspector.HeapSnapshotLoader.close(chrome-devtools://devtools/bundled/profiler/heap_snapshot_worker/HeapSnapshotWorker.js:737:6) 位于Object.WebInspector.HeapSnapshotWorkerDispatcher.dispatchMessage (铬-devtools://devtools/bundled/profiler/heap_snapshot_worker/HeapSnapshotWorker.js:789:95)

我尝试将该文件与从Chrome保存的实际HeapSnapshot进行比较。标记/名称似乎出现在不同的地方,但它是一个有效的JSON文件。(通过jsonlint验证)


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

您需要创建可流化的JSON,以便让devtools读取它。Smth是这样的:

{
"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;
您还可以查看NodeJS模块以了解更多信息

钥匙顺序也很重要。顺序是:
[‘快照’、‘节点’、‘边’、‘跟踪函数信息’、‘跟踪树’、‘样本’、‘字符串’]