我正在使用 chromedriver 来测试 JavaScript Web 应用程序。如何通过 chromedriver 和 selenium 获取内存使用信息(即 chrome 开发工具的“历史记录”选项卡上显示的信息)。
这让我觉得这应该是可能的,因为 chromedriver 使用 chrome 的 devtools 调试系统来与 chrome 交互并控制 chrome。
我目前使用的 selenium 语言是 java,但如果您能提供任何语言的示例,我们将不胜感激。
我在 chrome 中做了类似的事情来获取我的应用程序的 javascript 内存使用情况
Chrome 驱动程序应使用以下 chromeOptions 打开。
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--enable-precise-memory-info"); // enabling this flag to get precise js heap memory info for chrome browser
WebDriver driver = new RemoteWebDriver(new URL(localhost:4444+"/wd/hub"), chromeOptions);
&然后使用下面的逻辑,我们可以得到chrome实例的JavaScript内存使用情况
JavascriptExecutor executor = (JavascriptExecutor) driver;
long value = (long) executor.executeScript("return window.performance.memory.usedJSHeapSize");
long valueInMB = value / (1024 * 1024);
PS:我只能在 Chrome 浏览器中找到此内容,而不能在 Firefox 中找到此内容。
正如您在评论中提到的,使用 Selenium 时无法启动 devTool。
但是,有一个关于通过 chrome API (javascript) 检索内存使用情况(堆快照)的有趣讨论:https://issues.chromium.org/issues/41151831。 如果 Chromium 开发团队实现了这一点,您可以使用 Selenium 执行 JavaScript 来获取堆快照。