2015-06-06 3 views
2

Я создаю несколько экземпляров PhantomJSDriver и могу делать запросы на веб-сайты и получать нужные данные. Каждый экземпляр порождается с помощью следующих действий:Процесс PhantomJS не выходит

WebDriver driver = BrowserUtils.getInstance().getBrowser(); 

Когда я закончу я пытаюсь сделать следующее:

driver.close(); 
    driver.quit(); 
    driver = null; 

Однако, если я открываю второй терминал и запустить

[email protected]:~/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 

Они просто сидят там. Они никогда не уходят. Идеи?

Edit 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

В идеале любой из методов close или quit должен работать. Раньше у вас были некоторые закрытые версии? – nEO

+0

Возможно, 'driver.quit()' никогда не вызывался, поскольку тест не прошел или что-то в этом роде. Вы уверены, что это называется независимо от того, что происходит с тестами? – Saifur

+0

У меня есть это в try/catch/наконец, чтобы независимо от того, что происходит, это называется. –

ответ

2

Пожалуйста, проверьте код выхода, выхода из вызовов, даже on.error уловов. Добавьте отсутствующий.

Кроме того, если это нормально, рассмотрим следующую ошибку в случае https://github.com/ariya/phantomjs/issues/10845 у вас есть NVidia видеоадаптер (у меня есть эта проблема даже в PhantomJS 1.9.8) Если у вас есть NVIDIA, пожалуйста, обновите драйвер, или выбрать только один из двух видеоадаптеров, который у вас есть, а не автоматический выбор.

Удачи

+0

Я продолжу искать. Тем не менее, я знаю, что это не видеокарта –

+1

Просматривая мои журналы немного больше. Был элемент, который не обнаружил ошибку тайм-аута, которая не была поймана, и поддержание службы в живых. Теперь я могу запустить сразу 6 экземпляров! –

Смежные вопросы