为啥即使测试完成,Chromium 似乎也能正常工作?

Posted

技术标签:

【中文标题】为啥即使测试完成,Chromium 似乎也能正常工作?【英文标题】:Why the Chromium seems to be working even though the test is finished?为什么即使测试完成,Chromium 似乎也能正常工作? 【发布时间】:2021-12-30 01:38:06 【问题描述】:

我在我的 Ubuntu 服务器上使用机器人框架和 selenium 在无头模式下运行了多次测试。但是即使测试结束了,我的内存使用量也增加了很多。我怀疑并下载了 htop 并查看了。这些资源使用是否正常?还是它们仍在后台运行?我应该怎么做才能让我的 ram 使用恢复正常?我已经分享了下面的图片链接。 我的猜测-> 机器人框架提供了 report.html 和日志文件。据我了解,机器人结束了,但铬仍在继续。

IMAGE LINK

【问题讨论】:

【参考方案1】:

您是否在代码中添加了driver.quit()?如果没有,司机还活着。您需要手动终止该任务,或者编写一个 bash 文件来执行此操作。我为 Windows 编写了一个批处理文件,以在我测试我的机器人时杀死所有 chrome.exechromedriver.exe,您也许可以在 bash 中执行类似的操作:

@echo off
TASKKILL -F -IM chrome.exe
TASKKILL -F -IM chromedriver.exe
echo "####################################"
echo "#    DRIVER KILLED SUCCESSFULLY    #"
echo "####################################"

在这种情况下,@echo off 禁用控制台中命令的打印,并且不需要回显。

【讨论】:

其实我是用了robot框架,所以在所有的测试之后我都使用了close browser这个关键字。这个关键字不会关闭浏览器和驱动吗? 在 selenium 中,close() 不关闭驱动程序,而只关闭浏览器窗口。如果你也想终止驱动,你需要使用quit()

以上是关于为啥即使测试完成,Chromium 似乎也能正常工作?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 ChromeDriver 不需要 Chrome 或 Chromium?

为啥在 IntentService 中进行的 BLE 扫描即使在服务被破坏时也能继续工作?

为啥 ASP.NET 动态控件即使添加到 Page_Load 中也能保持 ViewState?

苹果从来不飙配置,也从不关注配置,即使一般的配置也能卖好价钱,为啥没人喷?

我如何专门检测 Chromium 与 Chrome?

为啥 Python .readlines() 方法似乎在擦除文件?