【发布时间】:2014-07-19 20:23:34
【问题描述】:
我正在尝试通过单击网站中的 运行 按钮来运行我的 casperjs 脚本。我的本地设置是 PHP 5.5.14 和 Windows7 上的 Apache 2.4 [正确运行;用php页面测试];我的问题是:如何正确安装 casperJS 和 phantomJS 以便在执行脚本时识别其 PATH 。我需要知道 Windows 中的路径才能使用它:putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");。我已经研究了以下可能的解决方案,但没有一个提到如何正确安装 casperJS 和 phantomJS 以供 Web 服务器识别它们:CasperJS passing data back to PHP、Pass parameter from php to casperjs/phantomjs、How to run casperJS script from php API、Using casperjs and PHP to save data、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
【问题讨论】:
-
我认为这是一个特定于 Windows 的问题,所以我只是添加了该标签。 (对不起,无法回答我自己。)
-
我决定切换到 Mac 环境,但仍然想知道正确的安装/路径是什么才能像我在这里所做的那样(但在 Windows 中):stackoverflow.com/questions/24856492/…
标签: php windows apache phantomjs casperjs