2016-09-30 4 views
0

selenium Webドライバで新しいテストを開始する前に、以前に起動したブラウザウィンドウを閉じる方法はありますか?セレンウェブドライバでテストを実行する前に、すべてのブラウザインスタンスを閉じるにはどうすればいいですか?

私はすでに起動しているクロムブラウザウィンドウを以下のコードで閉じようとしていますが、これは以前のブラウザウィンドウを閉じるのではなく、テストで作成された現在のクロムドライバインスタンスを閉じています。

public static boolean isProcessRunning(String serviceName) 
{ 
    Process p; 
    try { 
     p = Runtime.getRuntime().exec(TASKLIST); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String line; 
     while ((line = reader.readLine()) != null) 
     { 
      if (line.contains(serviceName)) 
      { 
       return true; 
      } 
     } 
    } 
    catch (Exception e) 
    { 

     e.printStackTrace(); 
    } 
    return false; 
} 

をisProcessRunning

System.setProperty("webdriver.chrome.driver", "<Path of chromedriver.exe>"); 
WebDriver chromeDriver = new ChromeDriver(); 
for(String eachWindowHandle:chromeDriver.getWindowHandles()){ 
      chromeDriver.switchTo().window(eachWindowHandle).close(); 
     } 

答えて

2

使用この

String processName = "chromedriver.exe"; 
if (isProcessRunning(processName)) 
{ 
    Prerequisites.killProcess(processName); 
} 

機能は、=以下のように実装されているように私たちが使用している>

killProcess

public static void killProcess(String serviceName) 
{ 
    try 
    { 
     Runtime.getRuntime().exec(KILL + serviceName + " /T"); 
    } 
    catch (Exception e) 
    { 

     e.printStackTrace(); 
    } 
} 
0

ご希望のテストを実行するには、新しいブラウザを開く前にすべてのブラウザを閉じコードの下に使用

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

例:

Runtime.getRuntime().exec("taskkill /F /IM firefox.exe"); 

Runtime.getRuntime().exec("taskkill /F /IM chrome.exe"); 
関連する問題