我想知道是否有任何方法可以获取给定的所有小部件Shell
,包括Shell
. 实现这一目标的最简单方法是什么?
问问题
1111 次
2 回答
2
比唯一答案更具可读性和扩展性:
主要思想是您不能“一次”获得所有小部件,您需要使用matcher。此外,即使您有小部件,您也应该创建它们的副本以避免无效线程访问错误。
所以,匹配所有的片段(在这种情况下,所有文本小部件,但它可以很容易地被任何类型或小部件采用,如凯恩的回答):
import org.eclipse.swtbot.swt.finder.SWTBot;
import org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
Matcher<? extends Text> matcher = WidgetMatcherFactory.widgetOfType(Text.class);
List<? extends Text> widgets = new SWTBot().widgets(matcher);
for (Text t : widgets) {
// Create a copy to work with to avoid Invalid Thread exception
SWTBotText text = new SWTBotText (t);
// Do stuff...
}
于 2017-05-22T15:07:49.457 回答
0
尝试org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.allOf(WidgetMatcherFactory.widgetOfType(Widget.class))
于 2013-05-09T10:16:17.083 回答