click()的替代方式

vic*_*ory 7 javascript phantomjs

我一直在使用click()phantomJS引擎page.evaluate(),它工作得很好.但有时它只是不起作用我不知道为什么.

例如,我试图点击按钮验证这里

我试过这个:

page.evaluate(function() {
  document.getElementById('recaptcha-verify-button').click();
});
Run Code Online (Sandbox Code Playgroud)

还有这个 :

rect = page.evaluate(function() {
  return document.getElementById('recaptcha-verify-button').getBoundingClientRect();
});

console.log(rect.left + " " + rect.right);
page.sendEvent('mousemove', rect.left + rect.width / 2, rect.top + rect.height / 2);
page.sendEvent('mousedown', rect.left + rect.width / 2, rect.top + rect.height / 2);
page.sendEvent('mouseup', rect.left + rect.width / 2, rect.top + rect.height / 2)
Run Code Online (Sandbox Code Playgroud)

两者都不起作用,之后没有输出click(),我在chrome上尝试了相同但是它是相同的.任何想法或建议表示赞赏.

Ikh*_*yor -1

这是模拟点击元素的函数

function simulateClick(element) {
    var event = document.createEvent("MouseEvents");
    event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    element.dispatchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)

我认为这就是你需要解决的问题