使用Powershell中的jar文件运行时,Runtime.getRuntime()。exec不起作用

时间:2019-12-14 13:23:20

标签: java selenium selenium-webdriver automated-tests runtime.exec

我有一段代码可以杀死 Selenium / Java 上的chrome驱动程序:

Runtime.getRuntime().exec("taskkill /f /im chromedriver.exe");

当我在 Eclipse 中运行此代码段时,它可以工作并杀死所有驱动程序,但是当我从同一项目中创建jar文件并运行此jar时,exec命令不起作用,并且可以不会杀死司机。

public class CommonKillAllDrivers {
    public void killAllDrivers() throws InterruptedException {

        try{
            Runtime.getRuntime().exec("taskkill /f /im chromedriver.exe");
        }
        catch (Exception e) {
            System.out.println("error in catch");
        }

    }
}

此代码是通过afterTest方法调用的:

    @AfterTest(alwaysRun = true)
    public void killDrivers() throws InterruptedException {

        CommonKillAllDrivers killDrivers = new CommonKillAllDrivers();

        killDrivers.killAllDrivers();

    }

所以我要这样做:在使用测试创建的所有打开的驱动程序最后都被杀死了。 (我在任务管理器中观察到这些chromedriver.exe

但是当我从 Powershell 运行jar文件时:

 java -jar "C:\Users\mervey\eclipse-workspace\tvb2b\target\b2b-selenium-jar-with-dependencies.jar" "C:\Users\mervey\eclipse-workspace\tvb2b\testng-suite.xml"

...这行代码不起作用,不会杀死驱动程序。

0 个答案:

没有答案