我正在使用chromedriver测试一个javascript webapp。如何通过chromedriver和selenium获取内存使用信息(类似于chrome开发工具中“历史记录”选项卡中显示的信息)。
我认为这应该是可能的,因为chromedriver使用chrome的devtools调试系统与控制chrome进行交互。
我目前在使用selenium时使用的语言是java,但如果您能提供任何语言的示例代码,那将不胜感激。
我正在使用chromedriver测试一个javascript webapp。如何通过chromedriver和selenium获取内存使用信息(类似于chrome开发工具中“历史记录”选项卡中显示的信息)。
我认为这应该是可能的,因为chromedriver使用chrome的devtools调试系统与控制chrome进行交互。
我目前在使用selenium时使用的语言是java,但如果您能提供任何语言的示例代码,那将不胜感激。
我在Chrome中做了类似的事情,以获取我的应用程序的JavaScript内存使用情况。
应该使用以下chromeOptions打开Chrome驱动程序。
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);
注:我只能在Chrome浏览器中找到这个功能,而Firefox浏览器中没有。
如你在评论中提到的,使用Selenium时无法启动devTool。
然而,通过chrome API(javascript)检索内存使用情况(堆快照)有一个有趣的讨论:https://code.google.com/p/chromium/issues/detail?id=448379。如果Chromium开发团队实现了这一点,你可以使用Selenium执行JavaScript来获取堆快照。