1

我正在尝试使用 SWTbot API 从 Eclipse 中的 Composite 获取文本。我有 Composite,其中包含主组,而主组包含子组。
我面临的问题是我无法在合成中获取文本,Eclipse 中有没有办法获取该文本。
我附上了我的合成图像,我想在其中获取所有文本,如名称、最小版本等。
请帮忙,它对我的​​项目来说是一种阻碍。 在此处输入图像描述

4

1 回答 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 回答