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 我现在可以轻松地获取源(作为文档而不是文本)并且不会得到空值。问题是(正如 charlietfl 所暗示的)xhr.response.getElementById("simulate-button").click();工作不正常。IE 我在没有点击按钮的情况下得到了 DOM 的主体。任何想法如何模拟鼠标点击,因为我的方式不起作用?

4

0 回答 0