我有一段代码可以杀死 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"
...这行代码不起作用,不会杀死驱动程序。