【问题标题】:Clipboard access in SWTBotSWTBot 中的剪贴板访问
【发布时间】:2015-02-03 11:44:46
【问题描述】:

如何在运行 SWTBot 测试时访问剪贴板?

以下代码抛出无效线程访问。

Clipboard clipBoard = new Clipboard(SWTUtils.display());
Object object = clipBoard.getContents(TextTransfer.getInstance());

以上代码在 UI 线程中运行时有效。这是唯一的方法吗?

如何在 SwtBot 线程中访问剪贴板?

【问题讨论】:

  • 没有办法访问 SWTBot 线程中的剪贴板,因为我了解到 SWTBot 线程是用户线程并用于模拟用户操作。因此,必须将 SWTBot 线程同步到 UI 线程并获得对剪贴板的访问权限。 Rüdiger Herrmann 的解决方案提供了帮助

标签: java swt swtbot system-testing


【解决方案1】:

与 SWTBot 中对 UI 元素的任何其他访问一样,您需要将剪贴板访问委托给 UI 线程。

如果 SWTBot 中还没有 ClipboardBot,您可以自己这样做:

final Object[] object = { null }
display.syncExec( new Runnable() {
  public void run() {
    Clipboard clipBoard = new Clipboard( display );
    object[ 0 ] = clipBoard.getContents( TextTransfer.getInstance() );
    clipboard.dispose();
  }
} );

如果您想使用一些 SWTBot 基础架构来完成此任务,还有一篇关于 how to extend SWTBot.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2010-11-09
    • 2012-01-06
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多