4

我正在使用 chromedriver 来测试一个 javascript webapp。如何通过 chromedriver 和 selenium 获取内存使用信息(chrome 开发工具的“历史”选项卡上显示的信息类型)。

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

我目前用于 selenium 的语言是 java,但如果您可以提供任何语言的示例,那么您可以使用它。

4

2 回答 2

6

我在 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。

于 2019-08-16T11:19:49.807 回答
1

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

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

于 2015-12-23T05:52:46.570 回答