我想了解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本身不使用任何内存。 WebDriver 和Web 浏览器 进程消耗了内存。例如,当您创建任何 WebDriver 变体的新实例来启动相关的Web 浏览 session 时,这两个过程都会消耗内存。
现在,不同的浏览器客户端变体将遵循不同且不同的方法和风格来启动
、管理
和拆卸
浏览器内部进程。因此不同浏览器的内存消耗会有所不同。
回答您的问题:
当我长时间运行我的应用程序时,Firefox 内存会增加很多:在粗略处理事件浏览 session 时,浏览器二进制文件必须跟踪大量数据内存 ( stack memory / heap memory ) 资源的时间。因此,内存消耗可能会根据情况增加/减少。
我想知道如何减少 Firefox 内存:不,您无法控制浏览器的内存消耗。
解决方案
网络浏览器最近已经发展了很多。每个网络浏览器变体,例如Mozilla、Chrome 和 Internet Explorer 正在不断致力于开发更高效的浏览器进程。您可以对自动化测试采取以下步骤来消耗最佳内存:
- 保留JDK Version更新到最新版本,因为每个版本都旨在优化内存利用率。
- 保留Selenium Version更新到最新版本,因为每个版本都旨在更好的内存管理。
- 保留WebDriver Version更新到最新版本,因为每个版本都旨在更好的内存管理。
- 将网络浏览器版本更新为最新版本,因为每个版本都旨在提高内存利用率。
如果您的网络浏览器的基本版本太旧,您可以考虑通过 Revo Uninstaller 卸载网络浏览器并安装最新的稳定和GA版本的网络浏览器。
使用CCleaner在测试执行之前和之后使用工具来消除操作系统系统的杂务。
在隔离系统中执行测试执行,无需手动干预
将测试系统保留在测试实验室内,并配备硬件要求以执行测试套件.
关于selenium - 为什么Selenium占用大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48535346/