我正在尝试使用SWTbot API从Eclipse中的Composite获取Text。
我有复合材料,其中包含主要组和主要组包含子组
我面临的问题是我无法获得复合内的文本,是否有一种方法可以在Eclipse中获取该文本。
我附上了我的复合图像,我希望得到所有的文字,如名字,最小版本等
请帮助,它是我的项目的阻止。
答案 0 :(得分:1)
不是直接的,但你可以这样做:
public getContainedText(Control c) {
return getContainedText(c, new ArrayList<String>());
}
private getContainedText(Control c, List<String> strings) {
if (c instanceof Label) {
strings.add(((Label) c).getText();
} else if (c instanceof Text) {
strings.add(((Text) c).getText();
}
// and so on for other control types you want to handle
// and for text you are interested in.
// Or as an approximation, use reflection to check if
// c has getText method and call it, but this will miss
// List, Combo, etc.
if (c instanceof Composite) {
for (Control child : ((Composite) c).getChildren()) {
getContainedText(child, strings);
}
}
}