Javascript click() 不适用于某些元素

标签 javascript automation click web

我想为网站编写一些自动化程序。只需填写表格并模拟点击元素。但是对于某些元素,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/

相关文章:

java - 有没有一种简单的方法可以从 Java 类中提取接口(interface),包括父类(super class)的公共(public)方法?

jQuery 在点击时更改原始标题文本?

JavaScript 单击图像按钮

javascript - Firebase 云功能停止工作 - event.data undefined

javascript - 在 Javascript 中保存图像

javascript - FileAPI - 将其用于房地产 Web 应用程序是个好主意吗?

javascript - 当 prop 在父组件中更改时,子组件中的输入不会更新

azure - 使用 Azure 逻辑应用创建 Jira 票证时更新受让人

java - Winium - 如果工具栏没有子项,如何访问工具栏项目

javascript - 区分 IE 和 Firefox 中的鼠标左键和右键单击