我正在尝试使用 SWTbot API 从 Eclipse 中的 Composite 获取文本。我有 Composite,其中包含主组,而主组包含子组。
我面临的问题是我无法在合成中获取文本,Eclipse 中有没有办法获取该文本。
我附上了我的合成图像,我想在其中获取所有文本,如名称、最小版本等。
请帮忙,它对我的项目来说是一种阻碍。
问问题
1084 次
1 回答
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);
}
}
}
于 2013-02-05T13:58:07.617 回答