我在使用它时遇到了一些麻烦。
var Browser = require('zombie');
var browser = new Browser({
debug: true
})
function getPredictions(){
var prediction = ['5', '7', '9', '11', '14', '18'];
for(i in prediction){
sendPrediction(prediction[i]);
}
}
function sendPrediction(prediction){
browser.visit('http://localhost:3000/prediction.php', function (error, browser){
browser.fill('#prediction', prediction);
browser.pressButton('Send', function (error, browser){
if(browser.html == 'correct'){
console.log('The correct prediction is ' + prediction +'');
}else{
console.log('The prediction ' + prediction + ' is incorrect.');
}
});
});
}
getPredictions();
基本上,我从阵列传递到服务器的所有四个预测,我希望能够检查它是否是正确的预测。 '9'是正确的预测,但它告诉我,即使browser.html是'正确',它们都是无效的。
我怎样才能让它发挥作用?我做错了什么?
答案 0 :(得分:0)
我认为你正在重复使用zombie-browser的同一个实例。尝试以这种方式重写代码。现在getPrediction
方法将“等待”,直到前一个方法完成并解析(注意next
参数)。
function getPredictions(){
var i = -1, prediction = ['5', '7', '9', '11', '14', '18'];
var next = function() {
i++;
if(i < prediction.length)
sendPrediction(prediction[i], next);
}
next();
}
function sendPrediction(prediction, next){
browser.visit('http://localhost:3000/prediction.php', function (error, browser){
browser.fill('#prediction', prediction);
browser.pressButton('Send', function (error, browser){
if(browser.html == 'correct'){
console.log('The correct prediction is ' + prediction +'');
}else{
console.log('The prediction ' + prediction + ' is incorrect.');
}
next();
});
});
}
每次检查预测时,您也可以尝试创建一个新的Browser
实例
function sendPrediction(prediction){
var browser = new Browser({ debug: true });
browser.visit('http://localhost:3000/prediction.php', function (error, browser){
browser.fill('#prediction', prediction);
browser.pressButton('Send', function (error, browser){
if(browser.html == 'correct'){
console.log('The correct prediction is ' + prediction +'');
}else{
console.log('The prediction ' + prediction + ' is incorrect.');
}
});
});
}