2013-07-30 20 views

回答

3

不幸的是,沒有內置的方法來做到這一點。


我覺得你最好的選擇是使用方法Widget#setData(Object)設置id。

可以使用生成(僞)隨機ID:

UUID id = UUID.randomUUID(); 
widget.setData(id); 

(或使用任何你想要的ID生成方法)。

要查找您的小部件,您必須使用任何您想要的搜索算法(DFS,BFS,...)搜索Shell(或您可以縮小的Composite)的子項,然後比較UUID您正在搜索的ID。

for(Control control : shell.getChildren()) 
{ 
    UUID id = (UUID) control.getData(); 

    if(id.equals(WHATEVER_HERE)) 
    { 
     System.out.println(control); 
    } 
} 
+0

但是,有沒有辦法讓所有的部件,所以我可以遍歷並找到一個我在找什麼? – Ido

+0

@Ido更新了我的答案。 – Baz

1

在您的複合/ UI部分使用默認的SWT博特鍵或您的自定義鍵

textOne.setData("org.eclipse.swtbot.widget.key", "textId1"); 
textTwo.setData("com.sample.my.custom.key", "textCustomId2"); 

在你的了SWTBot測試設置的數據,你可以得到文字如下

// using the default SWTBot Key 
botTextOne = bot.textWithId("textId1") 

//using your custom key 
botTextTwo = bot.textWithId("com.sample.my.custom.key", "textCustomId2") 

個參考文獻:

相關問題