我目前通过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和驱动程序 –