2012-03-08 9 views
2

私はphantom.jsから始めました(私は恋をしています)。ヘッドレスブラウザを私のPHP管理パネルに移動し、ユーザ名とパスワードでログインし、ログイン後にリダイレクトするページから、divタグからテキストを取得したいと考えています。Phantom.jsフィールドを入力し、送信をクリックして、次のページにアクセスします。

これまでのところ、フィールドを完全に埋めて、クリックイベントを作成し、divタグのDOM部分へのアクセスを見つけ、inner.Textを取得することができました。

私にとって欠けている部分は、phantom.jsがログインしてページの内容を変更するボタン(この場合はログインボタン)をクリックしたときの対処方法です。 .click()の後に処理する方法が見つかりません。イベント。

これは私がこれまでに作られたコード(ちなみにそのことではで開始するには良い方法...)

var page = new WebPage(); 

page.open("the url comes here", 
function(status){ 
if(status != "success"){console.log('fail loading the page');} 
    page.evaluate(function(){ 
     var arr = document.getElementsByName("formname"); 
     arr[0].elements["username"].value="username here"; 
     arr[0].elements["password"].value="password here"; 
    arr[0].elements["submit"].click(); 
     return; 
    } 
    phantom.exit() 
}); 

私はそれが

で後に来るページ上で実行するコードです
console.log(window.frames[1].document.getElementById('status').innerHTML) 

残りの唯一の質問は、リダイレクトを処理し、他のページでスクリプトを起動する方法です。

おかげで、

答えて

1

あなたはセットアップにページのロードのための新しいコールバックを必要とする:

page.onLoadFinished = function(status){ 
    console.log(window.frames[1].document.getElementById('status').innerHTML) 
} 

これは.click()をトリガする前に右に来る必要があります。

+0

not working mate ... – morti

関連する問題