我目前通過Jenkins使用「Build Periodically」選項運行多個Java程序,並使用H 06 * * 1-5(週一至週五上午6點至上午7點之間每天運行它) 。在Selenium/Java中殺死chromedriver進程
在某些程序中,我點擊鏈接打開一個新窗口。因此,我用下面的代碼
driver.findElement(By.xpath(".//*[@id='terms']/li[1]/a")).click();
System.out.println("Home Page is loaded Successfully and Terms of Use Link is clicked");
ArrayList<String> window1 = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(window1.get(1));
Thread.sleep(3000);
driver.close();
Thread.sleep(3000);
driver.switchTo().window(window1.get(0));
現在程序運行後,我的下面這個其他程序失敗,因爲已經在運行的過程ChromeDriver.exe的。
我在上面的代碼中嘗試使用driver.quit()
而不是driver.close()
,但它會關閉我的整個瀏覽器。
注意:我在我的程序結束時使用了driver.quit()
,它無法幫助我擺脫當我切換窗口時打開的正在運行的Chromedriver.exe實例。
請給我一個處理這個問題的好方法。我一直在用JAVA尋找這個解決方案。但主要是我看到了C#的答案。
感謝
您能否總結一下你正在嘗試自動化您確切的手動步驟?如果你正在用'driver.close();'關閉瀏覽器''driver.switchTo()。window(window1.get(0));''。請關閉窗口手柄。 – DebanjanB
嗨,我從我的主頁點擊「使用條款」鏈接。這打開了一個新窗口。所以我切換到新打開的窗口來檢查該窗口中的靜態文本。一旦完成。我關閉該窗口並切換回原來的主頁窗口。因此,當我使用driver.close()時,新打開的窗口關閉,但chromedriver.exe實例保持不變。這會在我的下一個預定程序運行時產生問題。 – johnsonambrose
如此接近將關閉當前活動的窗口,相當會殺死chromedriver。當你編程完成,這就是爲什麼你需要使用quit來關閉Chrome和驅動程序 –