java - PhantomJS 进程不退出

标签 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;
        }

最佳答案

请检查您的代码是否有 quit、exit 调用,甚至 on.error 捕获。添加缺少的一个。

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

祝你好运

关于java - PhantomJS 进程不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30685871/

相关文章:

带有 phantomjs 的 PHP 屏幕截图

java - ReplaceAll (""、 "") 删除字符串中空格 ""之后的所有文本?

ruby-on-rails - 如何测试自定义 uploader 是否有效?

Selenium 不启动 webdriver

ruby-on-rails - capybara + Rspec + Selenium : Page always blank in browser

javascript - 使用注入(inject)脚本在每个步骤请求 CasperJS 导航

java - Liberty 配置文件未在 servlet 中注入(inject) ejb

java - 避免在 java 继承中进行强制转换

java - 尝试使用 Java 读取和写入 html 文件时出现编码错误