2016-11-18 13 views
1

ログインするphantom.jsを使用しようとしています。 マイphantom.jsスクリプト:私が間違っていた何は、私は私のFacebookのアカウントにログインするためのスクリプトを作成しようとしていますが、私は私のスクリプトを実行したとき、私はクッキーが有効になっていないメッセージを受け取るFacebookの

var webPage = require('webpage'); 
var page = webPage.create(); 

page.settings.userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1'; 
page.settings.javascriptEnabled = true; 
page.settings.loadImages = false; 
phantom.cookiesEnabled = true; 
phantom.javascriptEnabled = true; 

page.open("http://facebook.com", function(status) { 


    if (status === "success") { 
     page.evaluate(function() { 
       document.querySelector("input[name='email']").value = "x"; 
       document.querySelector("input[name='pass']").value = "y"; 
       document.querySelector("#login_form").submit(); 

       console.log("Login submitted!"); 
     }); 
     window.setTimeout(function() { 
      page.render('colorwheel.png'); 
      phantom.exit(); 
     }, 5000); 
    } 
}); 

+1

おそらくユーザーエージェントとしてIE6を使用していませんか? –

+0

@ダニエルA.ホワイト私は他のユーザエージェントを使ってみましたが、私は同じエラーを受け取ります。 – lolix

+0

@lolix Cookieを保存するオプションでPhantomJSを実行しますか? --cookiesファイル= /パス/に/ cookies.txtは、永続的なクッキー(http://phantomjs.org/api/command-line.html)を格納するファイル名を指定します。 –

答えて

0

すべて正常に動作し、それをテストします。あなたの問題は、console.logメッセージをサンドボックスからキャッチしなかったことです。そのためには、page.onConsoleMessageコールバックを使用する必要があります。

function click(sel){var event=document.createEvent('MouseEvents');event.initMouseEvent('click',1,1,window,1,0,0,0,0,0,0,0,0,0,null);document.querySelector(sel).dispatchEvent(event);} 
var page = require('webpage').create({viewportSize:{width: 1600,height: 900}, 
settings:{userAgent:'Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0', 
javascriptEnabled:'true', 
loadImages:'false' 
}}); 
// https://github.com/dillbyrne/random-agent-spoofer/blob/master/data/json/useragents.json 
page.onConsoleMessage = function (msg, line, source) { 
    console.log('console> ' + msg); 
}; 

page.open("http://facebook.com", function(status) { 
    if (status === "success") { 
     page.evaluate(function(click) { 
       document.querySelector("input[name='email']").value = "<login>"; 
       document.querySelector("input[name='pass']").value = "<pass>"; 
       document.querySelector("#login_form").submit(); 
       console.log("Login submitted!"); 
//   setTimeout(function(){ scrollTo(0,document.body.scrollHeight) },2500);//Scrolling to bottom. 
//click("a[someAttr=someVal]") 
     },click); 
     setTimeout(function() { 
      page.render('test.png'); 
      phantom.exit(); 
     }, 5000); 
    } 
}); 
関連する問題

 関連する問題