Нажав кнопку для запуска casperJS в PHP и отображения результатов на той же странице PHP с кнопкой
У меня есть скрипт casperJS, который регистрирует нескольких пользователей с предоставленными учетными данными; который возвращает количество успешных и неудачных входов в систему, а также имена пользователей, которые успешно и не удалось. Я пытаюсь запустить этот скрипт, нажав кнопку на странице PHP, и после запуска casperJS я хочу, чтобы результаты отображались на той же странице, где была нажата кнопка (без перезагрузки страницы). Я рассмотрел и рассмотрел следующие вопросы и ответы, но ни один из них не дает адекватного ответа на мою проблему (поскольку результаты не отображаются после завершения сценария):нажмите на кнопку, чтобы запустить PHP-код и эхо-результат, Запустите / Выполните скрипт CasperJS, нажав кнопку на веб-странице, CasperJS передает данные обратно в PHP.
Мой текущий веб-сервер настроен:
Версия PhantomJS: 1.9.7Версия CasperJS: 1.1.0-бета3Apache / 2.2.27 (Unix) mod_ssl / 2.2.27 OpenSSL / 1.0.1h DAV / 2 PHP / 5.5.14На OS X 10.9.3Мой скрипт casperJS:суть
Сначала я вызвал скрипт casperJS прямо на странице PHP (но это, очевидно, привело к тому, что сначала был запущен скрипт, а затем к странице), используя это (изКак запустить скрипт casperJS из php API):
echo exec("/home/user/casperjs/bin/casperjs /full/path/to/your_script.js");
После загрузки страницы она вернула часть результатов выполнения скрипта. Я не уверен, почему он предпочел повторить последнийthis.echo (JSON.stringify (трекер));, Я, конечно, хотел бы, чтобы он напечатал все эхо в сценарии, но это может быть другой вопрос; Я также хотел бы быть тюком, чтобы раскрасить эхо. Кроме того, снимки экрана также не имели место.
Теперь у меня на самом деле есть кнопка, и когда я нажимаю ее, она остается нажатой до тех пор, пока работает скрипт casperJS, и после того, как она будет выполнена, она не будет нажата, но я не получаю никакого результата. У меня нет возможности узнать, был ли запущен скрипт или нет, поскольку снимки экрана не появляются, хотя длительность нажатия кнопки заставляет меня поверить, что он был выполнен. Итак, это моя страница PHP:
<html>
<head>
<title>casperJS testing</title>
</head>
<body>
<center>
<p>Welcome to the casperJS Automated Testing Utility</p>
<br>
<input type="button" name="runcasperjs" onclick="casperjs()"><div id="results">Waiting for echoes</>
<br>
<?php
## This Function Below Sets PhantomJs So CasperJS Can Use It
putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
echo "Running PhantomJS version: ";
echo exec('/usr/local/bin/phantomjs --version 2>&1');
echo "<br />";
echo "Running CasperJS version: ";
echo exec('/usr/local/bin/casperjs --version 2>&1');
echo "<br />";
echo 'Current PHP version: ' . phpversion();
echo "<br />";
$version = apache_get_version();
echo "$version\n";
?>
</center>
<script>
function casperjs(){
var xhReq = new XMLHttpRequest();
var request = "http://pathToLocalHost/phpTest.php" // this will prepare a request to your server
xhReq.open("GET", request, false); // send a request
xhReq.send(null);
document.getElementsByID("results").innerHTML=xhReq.responseText /// this will display results
}
</script>
</body>
</html>
И это PHP-страница, активированная по кликуphpTest.php:
<?php
echo exec("/home/user/casperjs/bin/casperjs /full/path/to/your_script.js");
?>
Может быть, я делаю это совершенно неправильно, и у меня не должно быть другой страницы PHP, я не уверен. Я пытался создать решение, изучая предыдущие вопросы и ответы, но не могу найти решение. Спасибо!