【问题标题】:The fastest way to perform a click in Java在 Java 中执行单击的最快方法
【发布时间】:2016-11-04 21:08:16
【问题描述】:

我在我的 Java 项目中使用了 SWT 浏览器。

我通过 JavaScript 获取页面的内容,接下来通过 Java 代码获取我需要执行的按钮。

现在我从下面的 Java 代码中执行此操作:

browser.execute("document.getElementById('actionButton').click();");

browser 是来自库 org.eclipse.swt.browser.Browser; 的对象

但我不确定这是最快的点击方式。我关心尽快点击按钮。

有没有最快的方法来执行点击按钮?

远离图形点击,可能是火灾事件?

当我在 Java 中的按钮上调用方法 buttonComponent.doClick(); 时,我通过示例进行比较,它花费了大约 100 毫秒(通过图形线程并点击按钮),而当我使用 buttonComponent.getActionListeners()[0].actionPerformed(null); 时,它花费了 0 毫秒!

【问题讨论】:

  • 为什么你“需要”用Java代码点击它?如果您在 Javascript 中生成一个按钮并希望它尽快被点击,那么只需在它生成后立即点击它。
  • 我加载存在按钮的页面。我想以最快的方式从我的桌面 Java 应用程序中单击此按钮。
  • 请说明您当前的尝试有什么问题。
  • 我不确定这是最快的方法。就像在 java 桌面应用程序中,当我获取按钮组件并在它们上调用 buttonComponent.doClick(); 时,它需要大约 100 毫秒(图形线程),但是当我调用 buttonComponent.getActionListeners()[0].actionPerformed(null); 时,它需要 0 毫秒
  • @czArek 我建议选择click()。您与 Swing 监听器的类比是有缺陷的,因为它并不像您想象的那么容易。如果根本没有动作监听器怎么办?通过传递null 你会丢失信息等。我认为性能的提升并不能抵消不利因素。 JavaScript 也是如此。

标签: javascript java html dom swt


【解决方案1】:

我建议只使用click()

你与 Swing 监听器的类比是有缺陷的,因为它并不像你想象的那么容易:

  1. 如果根本没有动作监听器怎么办?
  2. 通过传递 null 您会丢失信息等。

我认为性能的提升并不能抵消不利的影响。

Javascript 也是如此。通过尝试手动调用侦听器(如果存在)可能会出错的事情太多了,并且从中获得的性能改进(如果有)也不是那么好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 2017-04-24
    • 2017-10-04
    • 2013-11-09
    • 1970-01-01
    相关资源
    最近更新 更多