javascript - 幻影;单击一个元素

标签 javascript click phantomjs

如何在 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/

相关文章:

javascript - 如何使用 RegExp 多次匹配重叠模式

javascript - 显示或隐藏 Div 并根据功能更改其图标

c# - C#中如何等待点击

javascript - 如何让点击的项目显示/隐藏其隐藏元素?

JavaScript 将 JSON 数据提取到新对象中

javascript - Jquery验证错误消息放置位置

javascript - Selenium WebDriver + PhantomJS + Python - 执行脚本和处理对话框

Meteor:你究竟是如何安装 phantomJS 的?

javascript - jQuery 的两个 onclick 操作的变量

javascript - 使用 phantomJS 运行源的 javascript