如何杀死许多 geckodriver.exe 个进程?
How to kill many geckodriver.exe processes?
我正在使用 Windows 10 pro x64、Firefox 50.x、Java 8、Selenium 3.0.1
public RemoteWebDriver remoteWebDriver;
//...
System.setProperty("webdriver.gecko.driver", browserWebDriverFilePath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
remoteWebDriver = new FirefoxDriver(capabilities);
remoteWebDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
remoteWebDriver.manage().window().maximize();
//...
remoteWebDriver.quit();
运行 来自命令行:
taskkill /F /IM geckodriver.exe
或者更好的是,将它放在一个批处理文件中,运行 每次你想清理该文件。
如果你愿意,你也可以在你开始之前从你的代码中做到这一点 运行宁:
boolean isDebug = java.lang.management.ManagementFactory.getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
try {
if (isDebug)
Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe");
} catch (IOException e) {
e.printStackTrace();
}
仅在调试时避免在 运行 并行时杀死从机上的实例。
我最近遇到了 webdriver 的这个问题,它留下了许多僵尸 geckodriver 进程。
将 driver.quit() 放在 finally 块中可以解决此问题。
FirefoxOptions options = new FirefoxOptions();
options.addArguments("--headless");
WebDriver driver = new FirefoxDriver(options);
try {
....
} finally {
driver.quit();
}
if driver.Close() 和执行 driver.Quit(),这种方式不成功,但用 driver.Quit()
覆盖 driver.Close()
不能使用终端执行,因为会将进程留在服务器中。
我正在使用 Windows 10 pro x64、Firefox 50.x、Java 8、Selenium 3.0.1
public RemoteWebDriver remoteWebDriver;
//...
System.setProperty("webdriver.gecko.driver", browserWebDriverFilePath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
remoteWebDriver = new FirefoxDriver(capabilities);
remoteWebDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
remoteWebDriver.manage().window().maximize();
//...
remoteWebDriver.quit();
运行 来自命令行:
taskkill /F /IM geckodriver.exe
或者更好的是,将它放在一个批处理文件中,运行 每次你想清理该文件。
如果你愿意,你也可以在你开始之前从你的代码中做到这一点 运行宁:
boolean isDebug = java.lang.management.ManagementFactory.getRuntimeMXBean().getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
try {
if (isDebug)
Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe");
} catch (IOException e) {
e.printStackTrace();
}
仅在调试时避免在 运行 并行时杀死从机上的实例。
我最近遇到了 webdriver 的这个问题,它留下了许多僵尸 geckodriver 进程。
将 driver.quit() 放在 finally 块中可以解决此问题。
FirefoxOptions options = new FirefoxOptions();
options.addArguments("--headless");
WebDriver driver = new FirefoxDriver(options);
try {
....
} finally {
driver.quit();
}
if driver.Close() 和执行 driver.Quit(),这种方式不成功,但用 driver.Quit()
覆盖 driver.Close()不能使用终端执行,因为会将进程留在服务器中。