我想为网站编写一些自动化程序。只需填写表格并模拟点击元素。但是对于某些元素,JavaScript 函数 click() 不起作用。例如它在这个页面上:http://www1.plus.pl/bsm/如果我在“Wyślij”按钮上点击(),什么也不会发生。这是我的命令:
document.getElementsByClassName('tab-button')[0].click()
怎么了?为什么这个函数在其他元素上有效?
最佳答案
在你的帮助下我找到了解决方案:
var evt = document.createEvent('MouseEvents')
evt.initMouseEvent('mousedown', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
document.querySelectorAll('.tab-button')[0].dispatchEvent(evt)
请注意,它应该是 mousedown
事件而不是 click
。有些网站的完成方式与其他网站不同。另一个重要的事情是第三个参数。它应该设置为 false
(在这种特殊情况下)。它设置 cancelable
值。如果不将此设置为 false
,它将不起作用。
谢谢大家的回答!
关于Javascript click() 不适用于某些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8520955/