2

私はphantom.jsから始めました(ところで私は恋をしています)。ヘッドレス ブラウザを php 管理パネルに移動させ、ユーザー名とパスワードでログインさせようとしています。ログイン後にリダイレクトされるページから、div タグからテキストを取得したいと考えています。

これまでのところ、フィールドに問題なく入力し、クリック イベントを作成し、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)

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

ありがとう、

4

1 に答える 1

1

ページの読み込み用に新しいコールバックを設定する必要があります。

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

これは、トリガーする直前に来る必要があります.click()

于 2012-03-08T18:25:28.433 に答える