如何使用selenium从chromedriver获取内存使用历史记录

问题描述 投票:0回答:2

我正在使用 chromedriver 来测试 JavaScript Web 应用程序。如何通过 chromedriver 和 selenium 获取内存使用信息(即 chrome 开发工具的“历史记录”选项卡上显示的信息)。

这让我觉得这应该是可能的,因为 chromedriver 使用 chrome 的 devtools 调试系统来与 chrome 交互并控制 chrome。

我目前使用的 selenium 语言是 java,但如果您能提供任何语言的示例,我们将不胜感激。

selenium memory-management selenium-chromedriver
2个回答
7
投票

我在 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 中找到此内容。


1
投票

正如您在评论中提到的,使用 Selenium 时无法启动 devTool。

但是,有一个关于通过 chrome API (javascript) 检索内存使用情况(堆快照)的有趣讨论:https://issues.chromium.org/issues/41151831。 如果 Chromium 开发团队实现了这一点,您可以使用 Selenium 执行 JavaScript 来获取堆快照。

© www.soinside.com 2019 - 2024. All rights reserved.