私はjavascript/jqueryでスクリプトを書いています。一度実行するとサブページに移動し、ボタンをクリックして、その結果のページのDOMを取得する必要があります。その後、いくつかの操作を実行して、必要なデータを取得できます。
いくつか掘り下げた後、私はこのスクリプトを書きました:
var pageDOM = null;
var xhr = new XMLHttpRequest();
xhr.overrideMimeType('text/xml');
xhr.open('GET', '/newsfeed-simulator', true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
pageDOM = xhr.responseXML;
pageDOM.getElementById("simulate-button").click();
}
};
xhr.send(null);
このスクリプトを使用すると、必要なサブページにアクセスできますが、xhr.responseXML は常に null を返します。私はグーグルで追加しましxhr.overrideMimeType('text/xml');
たが、それでも機能しません。奇妙なことは、それがxhr.responseText;
うまく機能することです。
何が悪いのかわからない、それは簡単な作業である必要がありますか? この問題を解決する方法についてのアイデア/コメント/提案はありますか?
一番、
PS: 初めての投稿です。こんにちは :D
EDIT1 newsfeed-simulator は基本的に、クリックする必要があるボタンのあるページです。クリックするとページに要素が読み込まれ、それを使用してデータを取得できます。
EDIT2数時間のグーグル検索の後、私はこれを思いつきました
var xhr = new XMLHttpRequest();
xhr.open('GET', '/newsfeed-simulator', true);
xhr.responseType = 'document';
xhr.onload = function(e) {
if (this.status == 200) {
console.log(xhr.response)
xhr.response.getElementById("simulate-button").click();
console.log(xhr.response.body)
}
};
xhr.send();
XMLHttpRequest2 を使用すると、ソースを (テキストではなくドキュメントとして) 簡単に取得でき、null を取得できなくなりました。問題は (charlietfl が示唆しているように)xhr.response.getElementById("simulate-button").click();
正しく動作していないことです。IEボタンをクリックせずにDOMの本体を取得しています。どうすればmouseClickをシミュレートできますか?私のやり方がうまくいかないのでしょうか?