如何转到页面,单击按钮然后获取它的DOM

时间:2013-02-17 13:55:56

标签: javascript jquery dom google-chrome-extension xmlhttprequest

我正在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。我用Google搜索并添加了xhr.overrideMimeType('text/xml');但它仍然无效。奇怪的是xhr.responseText;工作正常。

不确定什么是错的,这应该是一项直接的任务?关于如何解决这个问题的任何想法/意见/建议?

最佳,

P.S。:这是第一篇文章,所以嗨: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();无法正常工作。 I.E.我没有点击按钮就得到了DOM的主体。 任何想法如何模拟鼠标点击,因为我的方式不起作用?

0 个答案:

没有答案