Я пытаюсь запустить свой скрипт casperjs, нажав кнопку Выполнить на веб-сайте. Моя локальная установка — PHP 5.5.14 с Apache 2.4 в Windows7 [правильно работает; протестировано с php-страницей]; и мой вопрос: как мне правильно установить casperJS и phantomJS, чтобы его PATH распознавался при выполнении скрипта. Мне нужно знать путь в Windows, чтобы использовать это: putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");. Я рассмотрел следующие возможные решения, но ни в одном из них не упоминается, как правильно установить casperJS и phantomJS, чтобы веб-сервер мог их распознать: CasperJS передает данные обратно в PHP, Передать параметр из php в casperjs/phantomjs, Как для запуска сценария casperJS из php API, Использование casperjs и PHP для сохранения данные, выполнение php phantom js работает, но casperjs не работает, разрешение запрещено
Это мой текущий сценарий для нескольких пользователей, чтобы войти на страницу, выйти из системы, а затем вернуть, сколько успехов / неудач.
var casper = require('casper').create()
var colorizer = require('colorizer').create('Colorizer');
var userNames = ['username1','username2','username3','username4', 'username5'];
var passWords = ['password1','password2','password3','password4', 'password5'];
var url = 'http://mywebsitenet.com';
var tracker = {Success: [], Fail: []};
function login(username, password) {
casper.then(function () {
this.sendKeys('#log', username);
this.sendKeys('#pwd', password);
this.click('#wpmem_login > form > fieldset > div.button_div > input.buttons');
// console.log(username + " has clicked the Log In button!")
});
casper.waitFor(function check() {
return this.evaluate(function() {
return document.getElementById('wp-admin-bar-logout');
});
}, function then() { // step to execute when check() is ok
this.click('#wp-admin-bar-logout > a');
tracker.Success.push(username);
this.echo(this.fetchText('#wp-admin-bar-my-account > a') + " you logged in.");
this.capture('Success_'+username+'.png');
}, function timeout() { // step to execute if check has failed
tracker.Fail.push(username);
this.echo("Warning: " + username + " could not be logged in.", "WARNING");
this.capture('Fail_'+username+'.png');
});
};
casper.start(); // empty page
casper.viewport(1024, 768);
userNames.forEach(function(username, index){
casper.thenOpen(url); // open the start page
login(username, passWords[index]); // schedule the steps
});
casper.then(function () {
this.echo("Success: " + tracker.Success.length, "INFO");
this.echo("Fail: " + tracker.Fail.length, "WARNING");
this.echo(JSON.stringify(tracker));
});
casper.run(); // begin the execution