PhantomJSを使用してログイン認証を使用してWebサイトからの情報のスクレイピングを自動化しようとしています。 ページのログインフォームにアクセスするには、ボタンをクリックする必要があります。ボタンをクリックすると、フォームを描画するjavascript関数がトリガーされます。 私のコードでは、単純にjs関数を呼び出してフォームを描画し、その後にフィールドを埋めるようにしています。 問題は、phantomjsが新しい描画要素を見つけられないことです。 もう一方で、関数を呼び出した後にスクリーンショットを撮ると、その要素が表示されます。 ページ上の他のフォーム要素にアクセスすることは問題なく動作するので、問題が完全に描画される前にphantomjsが要素にアクセスしようとしている可能性があります。PhantomJs:jsファンクションで描画されたアクセスエレメント
ここに私のコードは次のとおりです。
var page = require('webpage').create();
url = "http://websiteURL.bla";
page.open(url, function(status) {
if (status === "success") {
page.evaluate(function() {
netbar_login_signup() //js function to show login form
});
page.evaluate(function() { //wait a few seconds, then fill the fields
document.getElementById("gsnet_login_name").value = "name";
document.getElementById("gsnet_login_passwd").value = "password";
document.getElementById("gsnet_login_submit").click();
},3000);
window.setTimeout(function() { //wait a few more seconds, then take screenshot
page.render("page.png");
},5000);
}
});
誰もが同じような問題を経験したか、私の解決策を知っていますか?