このコードをノードサーバーで使用できるように変換するのは苦労します。したがって、このコードはPhantomJSプロセス(つまり$:phantomjs index.js)で実行するように記述されていますが、パッケージrequire( "phantom")を使用してノードサーバで実行します。私はこれらの2つのコールバックが動作するのに問題があります。PhantomJSのファントムノードパッケージに相当するコード
page.onLoadFinished = function(status){
console.log("Load Finished");
};
page.onUrlChanged = function(){
console.log("URL Changed");
};
ここでは、状況全体をnodefyしようとする私の哀れな試みです。
phantom.create(['--ignore-ssl-errors=yes','--load-images=no']).then(function(ph) {
console.log("here");
ph.createPage().then(function(page) {
page.property('onResourceRequested', function(requestData, networkRequest) {
console.log(requestData.url);
});
page.open('https://example.com/login').then(function(status) {
console.log(status);
if (status !== 'success') { console.log("failed connection")} else {
page.evaluate(function() {
document.getElementById('email').value = "stuff";
document.getElementById('password').value = "things";
setTimeout(document.getElementsByTagName('button')[0].click(),5000);
console.log("login attempt");
setTimeout(document.URL, 2000);
});
page.onLoadFinished = function(status){
console.log("Load Finished");
};
page.onUrlChanged = function(){
console.log("url changed");
};
}
});
});
});
はまた、コードは、ファントムがログインした後、私はonUrlChangedを使用しようとやってonLoadFinishedた、次のページからのデータを必要とするが、問題があり、動作し、ページを取得し、ボタンをクリックします。
明確にするために、nodejsのphantom.createメソッドの.onLoadFinishedおよび.onUrlChangedに設定した関数は決して実行されません。 –