如何在 PhantomJS 中点击一个元素?
page.evaluate(function() {
document.getElementById('idButtonSpan').click();
});
这给了我一个错误“undefined is not a function...”
如果我改为
return document.getElementById('idButtonSpan');
然后打印出来
然后它打印 [object object],所以该元素确实存在。
该元素充当按钮,但它实际上只是一个 span 元素,而不是提交输入。
我能够通过单击此按钮来使用 Casper,但 Casper 有其他限制,所以我又回到了 PhantomJS。
最佳答案
.click()
不是标准的。您需要创建一个事件并发送它:
function click(el){
var ev = document.createEvent("MouseEvent");
ev.initMouseEvent(
"click",
true /* bubble */, true /* cancelable */,
window, null,
0, 0, 0, 0, /* coordinates */
false, false, false, false, /* modifier keys */
0 /*left*/, null
);
el.dispatchEvent(ev);
}
关于javascript - 幻影;单击一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15739263/