Я создаю несколько экземпляров 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;
}
В идеале любой из методов close или quit должен работать. Раньше у вас были некоторые закрытые версии? – nEO
Возможно, 'driver.quit()' никогда не вызывался, поскольку тест не прошел или что-то в этом роде. Вы уверены, что это называется независимо от того, что происходит с тестами? – Saifur
У меня есть это в try/catch/наконец, чтобы независимо от того, что происходит, это называется. –