我正在创建几个PhantomJSDriver实例,可以向网站发出请求并获取我想要的数据。每个实例都通过以下方式生成:
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;
}
答案 0 :(得分:2)
请检查您的代码是否退出,退出电话,甚至on.error捕获。添加遗失的那个。
此外,如果可以,请考虑以下错误https://github.com/ariya/phantomjs/issues/10845 如果你有nvidia视频适配器(即使在PhantomJS 1.9.8中我也有这个问题) 如果您有nvidia,请升级驱动程序,或者只选择您拥有的两个视频适配器中的一个,而不是自动选择。
祝你好运