java - 确保 ChromeDriver 在强制退出时关闭

标签 java selenium selenium-chromedriver

运行 chromeDriver 时,我使用 try/catch/finally 语句来确保如果发生任何异常,我的 WebDriver 将正确关闭。但是,如果抛出异常,这将非常有效;在用户强制退出我的应用程序的情况下,浏览器实例不会关闭。这可能会导致在后台运行不需要的 google chrome 线程。

当用户强制退出我的应用程序时,我如何确保浏览器关闭?

代码示例如下:

public class WebDriverTest {

    WebDriver driver;
    WebDriverWait wait;

    public WebDriverTest() {
        System.setProperty("webdriver.chrome.driver", "res/chromedriver");
        driver = new ChromeDriver();
        this.wait = new WebDriverWait(driver, 1);
    }

    public static void main(String[] args) {
        WebDriverTest main = new WebDriverTest();
        main.test();
    }

    private void test() {
        try {
            driver.get("https://www.google.com");
            WebElement element = driver.findElement(By.name("q"));
            element.sendKeys("test");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //If force quit the browser is never closed
            driver.quit();
        }
    }

}

最佳答案

好吧,您似乎做对了,将 quit 放入 finnaly block 。

在测试结束时执行这个怎么样?

Runtime.getRuntime().exec("taskkill /F /IM <processname>.exe")

所以你可以杀死 chromedriver.exe。

关于java - 确保 ChromeDriver 在强制退出时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51107266/

相关文章:

javascript - AngularJS 和 SpringMVC 在同一个项目中

java - Intellij idea,无法使Maven工作

javascript - 使用python从网站获取元素,无需打开浏览器

c# - IDevTools 实例不包含 CreateDevToolsSession 方法

selenium - WebDriverError : no such session error using ChromeDriver Chrome through Jenkins and Selenium

python - selenium.common.exceptions.WebDriverException : Message: invalid session id using Selenium with ChromeDriver and Chrome through Python

java - 数据库问题

java - 由匿名内部类完成的事件处理

java - 运行Appium测试时找不到APK文件

java - Selenium 错误——显式等待不起作用