selenium - 为什么Selenium占用大量内存

标签 selenium firefox selenium-webdriver memory geckodriver

我想了解selenium与firefox的问题, 我使用 Firefox 版本 56.0.2,selenium3.5.1,和 geckodriver 0.19.1,服务器 ubuntu(x64) 操作系统,firefox --headless 模式 我发现当我长时间运行我的应用程序时,firefox内存会增加很多,例如400MB或更多,并且当我让firefox打开about:blank时,内存不会减少 我想知道如何减少firefox内存(不杀死firefox进程),仅使用selenium来控制firefox或通过一些配置启动firefox 我想打开“about:blank”或其他 URL 来减少内存,但我发现它不起作用;

最佳答案

Selenium本身不使用任何内存。 WebDriverWeb 浏览器 进程消耗了内存。例如,当您创建任何 WebDriver 变体的新实例来启动相关的Web 浏览 session 时,这两个过程都会消耗内存。

现在,不同的浏览器客户端变体将遵循不同且不同的方法和风格来启动管理拆卸 浏览器内部进程。因此不同浏览器的内存消耗会有所不同。

回答您的问题:

  • 当我长时间运行我的应用程序时,Firefox 内存会增加很多:在粗略处理事件浏览 session 时,浏览器二进制文件必须跟踪大量数据内存 ( stack memory / heap memory ) 资源的时间。因此,内存消耗可能会根据情况增加/减少。

  • 我想知道如何减少 Firefox 内存:不,您无法控制浏览器的内存消耗。

解决方案

网络浏览器最近已经发展了很多。每个网络浏览器变体,例如MozillaChromeInternet Explorer 正在不断致力于开发更高效的浏览器进程。您可以对自动化测试采取以下步骤来消耗最佳内存:

  • 保留JDK Version更新到最新版本,因为每个版本都旨在优化内存利用率。
  • 保留Selenium Version更新到最新版本,因为每个版本都旨在更好的内存管理。
  • 保留WebDriver Version更新到最新版本,因为每个版本都旨在更好的内存管理。
  • 网络浏览器版本更新为最新版本,因为每个版本都旨在提高内存利用率。
  • 如果您的网络浏览器的基本版本太旧,您可以考虑通过 Revo Uninstaller 卸载网络浏览器并安装最新的稳定GA版本的网络浏览器

  • 使用CCleaner测试执行之前和之后使用工具来消除操作系统系统的杂务。

  • 在隔离系统中执行测试执行,无需手动干预

  • 测试系统保留在测试实验室内,并配备硬件要求以执行测试套件.

关于selenium - 为什么Selenium占用大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48535346/

相关文章:

android - 选择 selenium grid2 上的特定节点来运行测试

javascript - 从 Add-on Builder 调试 Firefox 扩展

java - 在已打开的 Firefox 上打开 WebDriver

python - 查找多个参数 Selenium Python

java - 从 xls 读取数据,使 xls 文件在 selenium 中损坏

linux - 从 Vagrant for Firefox 反向 X11 转发

java - 从网络浏览器执行命令

java - Selenium WebDriver 在线程 "main"org.openqa.selenium.ElementNotInteractableException 中抛出异常

javascript - NightwatchJS "freezes"

javascript - 如果复选框没有 "checked"属性,如何检查它的状态?