SWTBot 中的剪贴板访问
Clipboard access in SWTBot
如何在 运行ning SWTBot 测试时访问剪贴板?
以下代码抛出无效线程访问。
Clipboard clipBoard = new Clipboard(SWTUtils.display());
Object object = clipBoard.getContents(TextTransfer.getInstance());
以上代码在 UI 线程中 运行 时有效。这是唯一的方法吗?
如何在SwtBot线程中访问剪贴板?
与 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 基础架构来完成此操作,还有一个 post 关于
how to extend SWTBot.
如何在 运行ning SWTBot 测试时访问剪贴板?
以下代码抛出无效线程访问。
Clipboard clipBoard = new Clipboard(SWTUtils.display());
Object object = clipBoard.getContents(TextTransfer.getInstance());
以上代码在 UI 线程中 运行 时有效。这是唯一的方法吗?
如何在SwtBot线程中访问剪贴板?
与 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 基础架构来完成此操作,还有一个 post 关于 how to extend SWTBot.