我最近開始使用horseman.js來爲節點廢棄一個頁面。我無法弄清楚它是如何工作的,我在互聯網上找不到好的例子。如何使用HorsemanJs和PhantomJS處理Node.JS中的重定向
我的主要目標是登錄平臺並提取一些數據。我設法用PhantomJS做到這一點,但知道我想學習如何用horseman.JS做到這一點。
我的代碼應該打開登錄頁面,填寫登錄名和密碼輸入,然後單擊「登錄」按鈕。到目前爲止很容易。但是,點擊「登錄」按鈕後,該網站會在加載我想要工作的實際頁面之前創建2個重定向。
我的問題是,我不知道如何讓我的代碼等待該頁面。
隨着phantomJS我有一個解決方案與頁面的URL。下面的代碼演示如何從來就與管理,以phantomJS做到這一點,它工作得很好:
var page = require('webpage').create();
var urlHome = 'http://akna.com.br/site/montatela.php?t=acesse&header=n&footer=n';
var fillLoginInfo = function(){
$('#cmpLogin').val('mylogin');
$('#cmpSenha').val('mypassword');
$('.btn.btn-default').click();
};
page.onLoadFinished = function(){
var url = page.url;
console.log("Page Loaded: " + url);
if(url == urlHome){
page.evaluate(fillLoginInfo);
return;
}
// After the redirects the url has a "sid" parameter, I wait for that to apear when the page loads.
else if(url.indexOf("sid=") >0){
//Keep struggling with more codes!
return;
}
}
page.open(urlHome);
不過,我不能找到一種方法來處理與horseman.JS重定向。
這裏是從來就一直試圖與horseman.JS沒有任何成功:
var Horseman = require("node-horseman");
var horseman = new Horseman();
var urlHome = 'http://akna.com.br/site/montatela.php?t=acesse&header=n&footer=n';
var fillLoginInfo = function(){
$('#cmpLogin').val('myemail');
$('#cmpSenha').val('mypassword');
$('.btn.btn-default').click();
}
var okStatus = function(){
return horseman.status();
}
horseman
.open(urlHome)
.type('input[name="cmpLogin"]','myemail')
.type('input[name="cmpSenha"]','mypassword')
.click('.btn-success')
.waitFor(okStatus, 200)
.screenshot('image.png')
.close();
如何處理重定向?