为啥即使测试完成,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.exe
和 chromedriver.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?