PhantomJS Process不会退出

时间:2015-06-06 17:50:40

标签: java selenium phantomjs

我正在创建几个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;
        }

1 个答案:

答案 0 :(得分:2)

请检查您的代码是否退出,退出电话,甚至on.error捕获。添加遗失的那个。

此外,如果可以,请考虑以下错误https://github.com/ariya/phantomjs/issues/10845 如果你有nvidia视频适配器(即使在PhantomJS 1.9.8中我也有这个问题) 如果您有nvidia,请升级驱动程序,或者只选择您拥有的两个视频适配器中的一个,而不是自动选择。

祝你好运