JAva+seleniumテストフレームワーク(プロセスを強制的に閉じる)
JAva+seleniumテストフレームワークのプロセス強制閉鎖
seleniumテストでは、使用例が失敗し、ブラウザが閉じられない場合があります.後の例では正しく実行できません.
この場合、ブラウザを閉じるには、プロセスを強制的に殺す方法を採用することができます.もちろん、他のプログラムが呼び出された場合は、この方法で閉じることもできます.
プロセスを殺す
Windowsの下にtskillコマンドがあります.
または、
linuxの下killall
killは、あるプロセスidに信号を送信します.デフォルトで送信される信号はSIGTERMであり、kill-9が送信する信号はSIGKILL、すなわちexitである.exit信号はシステムにブロックされないのでkill-9はプロセスをスムーズに殺すことができます.
すなわち、プロセス名を指定することによりプロセスを殺す.
seleniumテストでは、使用例が失敗し、ブラウザが閉じられない場合があります.後の例では正しく実行できません.
この場合、ブラウザを閉じるには、プロセスを強制的に殺す方法を採用することができます.もちろん、他のプログラムが呼び出された場合は、この方法で閉じることもできます.
プロセスを殺す
tasklist
は、すべてのプロセスと対応する情報をリストします.tskill
殺プロセス、文法は簡単です:tskillプロセス名、またはtskill PID;taskkill
の使い方は複雑だがもっと強く、簡単なPIDはtskillを使うほうがいい.例えばtaskkill-imプロセス名と書かなければならない.拡張子、taskkill-pid PIDWindowsの下にtskillコマンドがあります.
Runtime runTime = Runtime.getRuntime();
// ie driver
runTime.exec("tskill iexplore");
runTime.exec("tskill IEDriverServer");
//chrome driver
runTime.exec("tskill chrome");
runTime.exec("tskill chromedriver");
または、
runTime.exec("TASKKILL /F /IM iexplore.exe");
runTime.exec("TASKKILL /F /IM IEDriverServer.exe");
linuxの下killall
kill – send a signal to a process
killは、あるプロセスidに信号を送信します.デフォルトで送信される信号はSIGTERMであり、kill-9が送信する信号はSIGKILL、すなわちexitである.exit信号はシステムにブロックされないのでkill-9はプロセスをスムーズに殺すことができます.
killall – kill processes by name
すなわち、プロセス名を指定することによりプロセスを殺す.
Runtime runTime = Runtime.getRuntime();
runTime.exec("killall -9 chrome");
runTime.exec("killall -9 chromedriver");