【发布时间】:2020-03-02 13:59:12
【问题描述】:
我的问题与this question 非常相似。我启动了许多WebDriver 的实例,其中一些没有响应driver.quit()。如this response 中所述,我可以通过以下代码从功能对象中直接检索 PID 来终止浏览器实例:
-
代码块:
import java.io.IOException; import org.openqa.selenium.Capabilities; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.RemoteWebDriver; public class Kill_Firefox_PID { public static void main(String[] args) throws IOException { System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); Capabilities cap = ((RemoteWebDriver) driver).getCapabilities(); System.out.println("moz:processID value is : "+cap.getCapability("moz:processID")); Runtime.getRuntime().exec("taskkill /PID "+cap.getCapability("moz:processID")); } } -
控制台输出:
moz:processID value is : 8492
虽然这可以很好地杀死浏览器本身,但当我打开任务管理器时,我仍然会看到 Geckodriver 的实例。正如另一个线程中所述,我无法通过taskkill /f /im geckodriver.exe 不加选择地杀死所有Geckdriver 实例,因为需要一些实例。
简而言之,我希望能够通过功能检索Geckodriver 的 PID,并以类似于我们能够检索Firefox WebDriver 的 PID 的类似方式销毁Geckodriver 的那些实例,如@概述987654323@.
这可能吗?
谢谢!
【问题讨论】:
标签: selenium selenium-webdriver process pid geckodriver