我尝试通过单击运行我的 casperjs 脚本Run网站中的按钮。我的本地设置是 Windows7 上的 PHP 5.5.14 和 Apache 2.4 [正常运行;使用 php 页面进行测试];我的问题是:如何正确安装 casperJS 和 phantomJS,以便在执行脚本时识别其 PATH。我需要知道 Windows 中的路径是什么才能使用它:putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");。我已经研究了以下可能的解决方案,但没有提到如何正确安装 casperJS 和 phantomJS 以便 Web 服务器识别它们:CasperJS 将数据传回 PHP https://stackoverflow.com/questions/15852987/casperjs-passing-data-back-to-php, 将参数从 php 传递到 casperjs/phantomjs https://stackoverflow.com/questions/23141628/pass-parameter-from-php-to-casperjs-phantomjs, 如何从 php API 运行 casperJS 脚本 https://stackoverflow.com/questions/18302267/how-to-run-casperjs-script-from-php-api, 使用casperjs和PHP保存数据 https://stackoverflow.com/questions/10710663/using-casperjs-and-php-to-save-data, php 执行 phantom js 可以工作,但 casperjs 不工作 权限被拒绝 https://stackoverflow.com/questions/21563640/php-execution-phantom-js-works-but-casperjs-does-not-work-permission-denied
这是我当前的脚本,供多个用户登录页面、注销,然后返回成功/失败的次数。
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