如何在运行SWTBot测试时访问剪贴板?
下面的代码引发无效的线程访问。
Clipboard clipBoard = new Clipboard(SWTUtils.display());
Object object = clipBoard.getContents(TextTransfer.getInstance());当在UI线程中运行时,上面的代码正在工作。这是唯一的办法吗?
如何访问SwtBot线程中的剪贴板?
发布于 2015-02-03 12:29:33
与SWTBot中任何其他UI元素访问一样,您需要将剪贴板访问委托给UI线程。
如果在ClipboardBot中已经没有SWTBot,您可以自己这样做:
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基础结构来完成这一任务,那么还有一篇关于如何扩展SWTBot的文章。
https://stackoverflow.com/questions/28298100
复制相似问题