Нет доступных браузеров, но действия запрашиваются?
Я получаю эту ошибку при попытке захвата браузера с помощью JsTestDriver:
java.lang.RuntimeException: No browsers available, yet actions [com.google.jstestdriver.RunTestsAction@5427ee05] requested. If running against a persistent server please capture browsers. Otherwise, ensure that browsers are defined.
at com.google.jstestdriver.browser.BrowserActionExecutorAction.run(BrowserActionExecutorAction.java:94)
at com.google.jstestdriver.ActionRunner.runActions(ActionRunner.java:81)
at com.google.jstestdriver.embedded.JsTestDriverImpl.runConfigurationWithFlags(JsTestDriverImpl.java:342)
at com.google.jstestdriver.embedded.JsTestDriverImpl.runConfiguration(JsTestDriverImpl.java:233)
at com.google.jstestdriver.Main.main(Main.java:70)
По сути, я делаю следующее:
Запуск сервера JsTestDriver с помощью:
nohup java -jar JsTestDriver-1.3.5.jar --port 9876> jstd.out 2> jstd.err dev/null &
Затем я пытаюсь захватить браузер с помощью:
nohup./phantomjs phantomjs-jstd.js> phantomjs.out 2> phantomjs.err dev/null &
И, наконец, я пытаюсь запустить тесты с:
java -jar JsTestDriver-1.3.5.jar --server http://localhost:9876/ --config ../../jsTestDriver.conf - проверяет все
Я должен сказать, что это происходит после того, как я обновил сервер Ubuntu, который у меня был, с 11.10 по 12.04. Это может помочь пролить свет на проблему, с которой я здесь сталкиваюсь.
Я понятия не имею о том, что происходит...
Кстати, я получил доступ к ссылке http://localhost:9876/, и я получаю этот вывод HTML:
<html>
<head>
<title>JsTestDriver</title>
<script>
function getEl(id){return document.getElementById(id);}function toggle(id) {
if (getEl(id).style.display=='block') {getEl(id).style.display='none';} else {getEl(id).style.display='block';}}
</script>
</head>
<body>
<a href="/capture">Capture This Browser</a>
<br/>
<a href="/capture?strict">Capture This Browser in strict mode</a>
<br/>
<p><strong>Captured Browsers: (0)</strong></p>
</body>
</html>
Что говорит мне, что что-то не так, поскольку нет элегантных браузеров.
РЕДАКТИРОВАТЬ
Пробуя другую машину (Fedora 21), я успешно все выполнил. У меня был другой вывод при запуске второй команды, которая пытается захватить браузер. Вывод, который я получил, был таким:
Wed Apr 13 2016 12:46:33 GMT+0200 (CEST): Attempting (1) to load: http://localhost:9876/capture
Wed Apr 13 2016 12:46:34 GMT+0200 (CEST): Finished loading http://localhost:9876/capture with status: success
И при посещении URL http://localhost:9876/ теперь я вижу, что есть один захваченный браузер. До сих пор не знаю, что происходит на сервере Ubuntu 12.04.
1 ответ
Ну, я наконец получил ответ на свой вопрос после целого дня проб и ошибок. Я скачал PhantomJS и заменил предыдущий двоичный файл новым. При запуске PhantomJS вывод был пустым, что бы я с ним ни делал. Даже "фантомная версия" заставила его неожиданно выйти.
Странно то, что я использовал этот "испорченный" бинарный файл в Fedora 21, который также работал в Ubuntu 11.10 до обновления Ubuntu до 12.04.
Задача решена!