一尘不染

PhantomJS; 点击一个元素

javascript

如何单击PhantomJS中的元素?

page.evaluate(function() {
    document.getElementById('idButtonSpan').click();  
});

这给我一个错误“未定义不是函数…”

如果我代替

 return document.getElementById('idButtonSpan');

然后打印

然后打印[object object],因此该元素确实存在。

该元素充当按钮,但实际上只是一个span元素,而不是Submit输入。

我可以单击此按钮来与Casper一起使用,但是Casper还有其他限制,所以我回到PhantomJS。


阅读 806

收藏
2020-04-25

共1个答案

一尘不染

.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);
}
2020-04-25