在 Java 中执行点击的最快方式
The fastest way to perform a click in Java
我在 Java 项目中使用了 SWT 浏览器。
我通过 Java 脚本获取页面内容,然后通过 Java 代码获取我需要执行点击的按钮。
现在我使用如下 Java 代码执行此操作:
browser.execute("document.getElementById('actionButton').click();");
browser
是来自库 org.eclipse.swt.browser.Browser;
的对象
但我不确定这是最快的点击方式。我希望尽快点击按钮。
有没有最快的点击按钮的方法?
远离图形点击,可能是火灾事件?
我正在通过示例比较它,当我在 Java 中调用按钮上的方法 buttonComponent.doClick();
时,它花费了大约 100 毫秒(通过图形线程并单击按钮),当我使用 buttonComponent.getActionListeners()[0].actionPerformed(null);
它花费了 0 毫秒!
我建议直接使用 click()
。
您与 Swing 侦听器的类比是有缺陷的,因为它并不像您想象的那么简单:
- 如果根本没有动作侦听器怎么办?
- 传递 null 会丢失信息等。
我不认为性能的提升可以抵消缺点。
Javascript也是如此。尝试手动调用侦听器(如果存在)可能会出错的地方太多,而且您从中获得的性能改进(如果有)也不是那么好。
我在 Java 项目中使用了 SWT 浏览器。
我通过 Java 脚本获取页面内容,然后通过 Java 代码获取我需要执行点击的按钮。
现在我使用如下 Java 代码执行此操作:
browser.execute("document.getElementById('actionButton').click();");
browser
是来自库 org.eclipse.swt.browser.Browser;
但我不确定这是最快的点击方式。我希望尽快点击按钮。
有没有最快的点击按钮的方法?
远离图形点击,可能是火灾事件?
我正在通过示例比较它,当我在 Java 中调用按钮上的方法 buttonComponent.doClick();
时,它花费了大约 100 毫秒(通过图形线程并单击按钮),当我使用 buttonComponent.getActionListeners()[0].actionPerformed(null);
它花费了 0 毫秒!
我建议直接使用 click()
。
您与 Swing 侦听器的类比是有缺陷的,因为它并不像您想象的那么简单:
- 如果根本没有动作侦听器怎么办?
- 传递 null 会丢失信息等。
我不认为性能的提升可以抵消缺点。
Javascript也是如此。尝试手动调用侦听器(如果存在)可能会出错的地方太多,而且您从中获得的性能改进(如果有)也不是那么好。