1

私は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をシミュレートできますか?私のやり方がうまくいかないのでしょうか?

4

0 に答える 0