将Chrome浏览器更新到版本65.0.3325.162(最新版)
后出现问题当我在任务管理器中完成每个方法后开始测试时,会出现额外的僵尸Chrome进程,它占用了很多CPU资源。
Chrome 65上的方法driver.quit()有什么变化吗?我要补充一点,在之前版本的Chrome浏览器上一切正常。
我使用数据提供程序,因此使用方法quit()是正确处理我的测试套件所必需的。
我使用mothod terminate()在每个测试类之后关闭浏览器。
我的东西: Windows 10 Selenium WebDriver ChromeDriver 2.36 Selenium WebDriver 2.20
@AfterClass(alwaysRun = true)
protected void terminate() {
if (browser != null) {
try {
browser.quit();
browser = null;
} catch (UnreachableBrowserException ex) {
TestReporter.log(ex.getMessage());
} catch (NoSuchSessionException noSuchSessionException) {
TestReporter.log("Tried to quit browser with NULL session: " + noSuchSessionException.getMessage());
}
}
if (application != null) {
application = null;
}
}
答案 0 :(得分:0)
更新为新版本的Chrome浏览器解决了我的问题。 Chrome 65.0.3325.162似乎有问题,导致创建了许多僵尸Chrome进程。
答案 1 :(得分:0)
1)将驱动程序作为单例
@Singleton
class BrowserInstance {
ChromeDriver getDriver(){
ChromeOptions options = new ChromeOptions()
options.addArguments("--headless --disable-gpu")
return new ChromeDriver(options)
}
}
2)使用Close并在finally块中退出
finally {
chromeDriver.close()
chromeDriver.quit()
}
结果:您一次只能使用一个实例,并且如果看到任务管理器,则不会发现chromedriver和chrome进程挂起。