生活就该追求零缺陷。
RFT自动化时的Widget is disposed问题解决办法
上一篇 /
下一篇 2011-07-27 13:53:30
/ 个人分类:RFT工具
在RFT工具里,使用API获取对象的方式实现自动化测试经常会出现如下异常:
org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:3884)
at org.eclipse.swt.SWT.error(SWT.java:3799)
at org.eclipse.swt.SWT.error(SWT.java:3770)
at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:336)
主要原因很简单,主要是执行对象所在的Shell已经关闭了,Shell关闭之后再去使用Shell的内部组件自然会报Widget is disposed的提示。一般场景是先打开了一个Shell,然后在Shell里面执行一系列动作后关闭了Shell,再打开该Shell执行其他操作时,如果你的代码仍然使用第一次操作的Shell对象就会出现这样的问题。
为了解决这个问题,简单的做法是在第二次操作的Shell对象需要重新获取,即在自动化代码里面重新获取对象所在的Shell,再从Shell中获取所执行的对象。
收藏
举报
TAG: