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

时间:2013-10-30 16:51:06

标签: selenium memory-management selenium-chromedriver

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

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

我目前用于selenium的语言是java,但是如果你能提供任何语言的例子,那么这些语言就会受到重视。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

我在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中找不到。