PhantomJS долго висит, говоря "Фаза очистки асинхронных сеансов, начиная СЕЙЧАС"
Вот скриншот:
![PhantomJS waiting for some calls]()
task : Codeception PHP Testing Framework v1.6.2
Powered by PHPUnit 3.7.19 by Sebastian Bergmann.
Suite selenium_acceptance started
Trying to see the welcome page of newweather (welcomeCept.php)
issue : it sits as it is and waiting for phantomJS to respond and below is what phantomJS screen is showing :
[INFO - 2014-03-13T01:42:51.575Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: ca14e740-aa50-11e3-bb6b-75468ba86108
[INFO - 2014-03-13T01:47:42.806Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
[INFO - 2014-03-13T01:52:42.806Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
[INFO - 2014-03-13T01:57:42.806Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
И он не видит на экране никаких результатов.
Это то, что я использую:
- Версия PhantomJS: 1.9.7
- работает на порту: 4444
Ответы
Ответ 1
Только полузависимый ответ, который я смог найти, был следующим:
"Фаза очистки асинхронных сеансов, запускающая СЕЙЧАС... была вызвана некоторыми вызовами внешних каналов, они были чересчур медленными. Эта фаза, должно быть, ждала этих вызовов, которые были тайминга, но PhantomJS сидел там в ожидании очень, очень долгое время.
Удаление этих вызовов при тестировании (с небольшим количеством JavaScript, если хост является localhost, а затем использовать фиктивный объект) решил проблему. "
Найдено здесь: Повторение "Фаза очистки асинхронных сеансов, начиная СЕЙЧАС"
Таким образом, проблема, скорее всего, вызвана выделением внешних фидов/API-вызовов.
Проблема Github: https://github.com/ariya/phantomjs/issues/11526
Ответ 2
Обходной путь, который работал у меня, - установить для параметра takeScreenshot значение false.
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("takesScreenshot", false);
Ответ 3
У меня такая же проблема год назад. Я нашел один грязный хак. Я использую другой сервер с nginx, где я проксировал все запросы в нужную тестовую сборку. Я перенаправил свои тесты на прокси-сервер, и теперь у меня нет этой ошибки. Тесты работают каждый день с апреля 2016 года, и никаких ошибок.
Ответ 4
В Java я использовал приведенный ниже код, и он был решен
DesiredCapabilities caps = new DesiredCapabilities();
Change - WebDriver driver = new PhantomJSDriver(caps);
with - this.driver = new PhantomJSDriver(caps);