PhantomJS:模拟元素点击
上下文:
尝试使用以下方式单击元素时PhantomJS的page.evaluate函数,您可能会遇到与调用undefined相关的错误作为一个函数。当目标元素是跨度而不是本机输入按钮时,就会发生这种情况。
解决方案:
要解决此问题并模拟对任意元素的单击,请使用以下自定义函数:
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); }
此函数创建一个合成鼠标单击事件并将其分派到指定的元素。与 page.evaluate 结合使用,可以有效模拟点击动作:
page.evaluate(function() { click(document.getElementById('idButtonSpan')); });
附加说明:
以上是如何使用 PhantomJS 模拟元素(例如 Span)的点击?的详细内容。更多信息请关注PHP中文网其他相关文章!