Java PhantomJS过程不';t出口
我正在创建几个PhantomJSDriver实例,可以向网站发出请求并获取所需的数据。每个实例都是通过以下方式生成的:Java PhantomJS过程不';t出口,java,selenium,phantomjs,Java,Selenium,Phantomjs,我正在创建几个PhantomJSDriver实例,可以向网站发出请求并获取所需的数据。每个实例都是通过以下方式生成的: WebDriver driver = BrowserUtils.getInstance().getBrowser(); driver.close(); driver.quit(); driver = null; 完成后,我尝试执行以下操作: WebDriver driver = BrowserUtils.getInstance().getBrowse
WebDriver driver = BrowserUtils.getInstance().getBrowser();
driver.close();
driver.quit();
driver = null;
完成后,我尝试执行以下操作:
WebDriver driver = BrowserUtils.getInstance().getBrowser();
driver.close();
driver.quit();
driver = null;
但是,如果我打开第二个终端并运行
myName@myBox:~/logs$ ps -e | grep phantom
4472 pts/2 00:00:41 phantomjs
4524 pts/2 00:00:32 phantomjs
4787 pts/2 00:00:18 phantomjs
4808 pts/2 00:00:19 phantomjs
他们只是坐在那里。他们永远不会离开。想法
编辑1:添加了更多代码以进行澄清
WebDriver driver = BrowserUtils.getInstance().getBrowser();
try {
driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.MINUTES);
driver.manage().timeouts().implicitlyWait(1, TimeUnit.MINUTES);
driver.get("https://my-web-site.com/");
// Do lots of things
} catch (Exception e) {
logger.log(e);
} finally {
BrowserUtils.getInstance().reset();
driver.close();
driver.quit();
driver = null;
}
请检查您的代码中是否有退出、退出调用,甚至是on.error捕获。添加缺少的一个
也可以,如果可以的话,考虑下面的bug 如果您有nvidia视频适配器(即使在PhantomJS 1.9.8中我也有这个问题) 如果您有nvidia,请升级驱动程序,或者只选择两个视频适配器中的一个,而不是自动选择
祝你好运理想情况下,任何关闭或退出方法都应该有效。您以前是否有一些未关闭的版本?可能是由于测试失败或类似的原因,
driver.quit()
从未被调用。您是否确保无论测试发生什么情况都会调用它?我在try/catch/finally中有它,以便无论发生什么情况都会调用它。我将继续查找。然而,我知道这不是视频卡在我的日志多看了一点。有一个元素找不到超时错误,未被捕获并使服务保持活动状态。现在我可以一次触发6个实例!