根据您的问题,注释掉driver.quit()
不会成为最佳实践的一部分。Not to close firefox window after each run, because I just want to analyse what I have
对于任何详细分析,我们可以创建日志条目并拍摄快照。
在按照最佳实践自动通过Selenium
时,您应该在.
通过发送带有{“flags”:[“eForceQuit”]}的“quit”命令来调用当前浏览会话,并最终在/shutdown上发送GET请求。
下面是一个例子:tearDown() {}
DELETE
EndPoint
1503397488598 webdriver::server DEBUG -> DELETE /session/8e457516-3335-4d3b-9140-53fb52aa8b74
1503397488607 geckodriver::marionette TRACE -> 37:[0,4,"quit",{"flags":["eForceQuit"]}]
1503397488821 webdriver::server DEBUG -> GET /shutdown
因此,在调用 quit()
方法时,会话和实例将被完全终止。因此,您不必合并任何额外的步骤,这将是一个开销。Web Browser
WebDriver
溶液
不过,如果你想执行杀死悬空的实例,例如GeckoDriver.exe实例,
你可以使用以下代码块中的任何一个来杀死任何悬空的实例:WebDriver
WebDriver
-
Java Solution(Windows):
import java.io.IOException;
public class Kill_ChromeDriver_GeckoDriver_IEDriverserver
{
public static void main(String[] args) throws Exception
{
Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe /T");
Runtime.getRuntime().exec("taskkill /F /IM chromedriver.exe /T");
Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe /T");
}
}
-
Python Solution (Windows):
import os
os.system("taskkill /f /im geckodriver.exe /T")
os.system("taskkill /f /im chromedriver.exe /T")
os.system("taskkill /f /im IEDriverServer.exe /T")
-
Python解决方案(跨平台):
import os
import psutil
PROCNAME = "geckodriver" # or chromedriver or IEDriverServer
for proc in psutil.process_iter():
# check whether the process name matches
if proc.name() == PROCNAME:
proc.kill()