我正在使用 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 内存使用情况
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 ://code.google.com/p/chromium/issues/detail?id=448379 。如果 Chromium 开发团队实现了这一点,您可以使用 Selenium 执行 JavaScript 来获取堆快照。