Javascript 元素被单击,但页面不会相应地重新加载
使用phantom JS,我试图单击一个Javascript 元素被单击,但页面不会相应地重新加载,javascript,jquery,html,phantomjs,Javascript,Jquery,Html,Phantomjs,使用phantom JS,我试图单击一个元素(target\u元素),并呈现在它之后加载的页面。元素已成功单击。但是,在呈现时,在输出中看不到刷新的页面。我已经给了足够的等待项目。代码是: page.open(address, function (status) { if (status !== 'success') { console.log('Unable to load the address!'); phantom.exit(); } el
元素(target\u元素),并呈现在它之后加载的页面。元素已成功单击。但是,在呈现时,在输出中看不到刷新的页面。我已经给了足够的等待项目。代码是:
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function () {
page.evaluate(function() {
document.getElementById('custom_filters').style.visibility = "hidden";
var a = document.getElementById('target_element');
var e = document.createEvent('MouseEvents');
e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
console.log(a.dispatchEvent(e));
waitforload = true;
});
page.render(output);
phantom.exit();
}, waitTime);
}
});
这是否意味着事件没有触发JS函数,或者我在这里做错了什么?不,在单击和渲染之间没有任何等待时间。
setTimeout
只需在需要延迟的调用周围
page.evaluate(function() {
document.getElementById('custom_filters').style.visibility = "hidden";
var a = document.getElementById('target_element');
var e = document.createEvent('MouseEvents');
e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
console.log(a.dispatchEvent(e));
waitforload = true;
});
window.setTimeout(function () {
page.render(output);
phantom.exit();
}, waitTime);