我在 Windows 8.1 上使用 PhantomJS 1.9.7,我将在输入用户名和密码后单击登录按钮。我可以写用户名和密码,但是当我想让 PhantomJS 点击按钮时,它可以找到元素但无法点击。我在以前的帖子中发现我需要创建事件并使用“dispatchEvent”。我这样做了,但出现如下错误:
TypeError:“未定义”不是函数(评估“elm.dispatchEvent(事件)”)
我也试图从 EventListener 获得帮助,但我得到了同样的错误。
如何点击一个元素?
var page = require('webpage').create();
page.open('URL', function() {
var submitButton = enterUserAndPassAndLogin();
click(submitButton);
phantom.exit();
});
function enterUserAndPassAndLogin() {
var element = page.evaluate(function() {
document.querySelector('input[name="username"]').value = "*******";
document.querySelector('input[name="password"]').value = "*******";
return document.getElementsByTagName("Button");
});
return element;
}
function click(elm) {
var event = document.createEvent("MouseEvent");
event.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
elm.dispatchEvent(event);
}