Selenium:如何在不关闭 Web 浏览器的情况下阻止 GeckoDriver 进程影响 PC 内存
为了分析测试结果并进行必要的操作测试执行后的更正,每次运行后保持 Firefox 窗口打开非常重要。但是,在不关闭驱动程序的情况下重复调用WebDriver可能会导致PC内存使用过多。本文旨在解决这个问题,并提供一种解决方案,允许在不关闭浏览器的情况下终止 GeckoDriver 进程。
问题陈述
已实现测试脚本实例化 GeckoDriver 实例。当多次运行测试而不使用 driver.quit() 方法关闭驱动程序时,会导致内存消耗显着增加。无论测试后是否手动关闭浏览器,都会发生这种情况。
解决方案
Selenium 自动化的最佳实践建议在tearDown() 中调用 quit() 方法堵塞。此方法向驱动程序发送“退出”命令,然后向 /shutdown 端点发送 GET 请求。此操作将完全终止浏览会话和 WebDriver 实例。
其他优化
如果需要,您可以手动终止任何悬空的 WebDriver 实例,例如 GeckoDriver.exe,使用以下方法:
Java 解决方案(Windows):
Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe /T");
Python 解决方案(Windows):
os.system("taskkill /f /im geckodriver.exe /T")
Python 解决方案(跨平台):
import os import psutil PROCNAME = "geckodriver" for proc in psutil.process_iter(): if proc.name() == PROCNAME: proc.kill()
通过将这些方法合并到您的测试框架中,您可以优化内存的使用情况,同时仍保持 Firefox 窗口打开以进行分析。这种方法可确保测试本身不受影响,同时提高自动化测试的整体性能。
以上是如何在 Selenium 中杀死 GeckoDriver.exe 而不关闭 Firefox 浏览器?的详细内容。更多信息请关注PHP中文网其他相关文章!