我正在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的主体。
任何想法如何模拟鼠标点击,因为我的方式不起作用?