2014-07-24 93 views
1

我目前正在編寫SWTBot測試,我遇到了一個問題,我需要等待一個操作完成,並且Info-MessageBox通知我有關完成。SWTBot - 等待消息框

這是怎麼了我公司目前正在努力做到這一點:

public void generateCode() { 
     SWTBotTree projectExplorerTree = bot.viewByTitle("Project Explorer").bot().tree(); 
     projectExplorerTree.getTreeItem(name).contextMenu("Generate Code").click(); 

     bot.waitUntil(Conditions.shellIsActive("Info"), 20000); 
     bot.button(IDialogConstants.OK_LABEL).click(); 
    } 

這是我在等待消息框:

enter image description here

但我得到下面的異常作爲了SWTBot未能識別消息框:

org.eclipse.swtbot.swt.finder.widgets.TimeoutException: Timeout after: 20000 ms.: The shell 'Info' did not activate 
    at org.eclipse.swtbot.swt.finder.SWTBotFactory.waitUntil(SWTBotFactory.java:412) 
    at org.eclipse.swtbot.swt.finder.SWTBotFactory.waitUntil(SWTBotFactory.java:386) 

任何w爲我的問題提供解決方案?謝謝!

回答

0

好吧,出於某種原因,消息框是由本地代碼創建的,這就是爲什麼SWTBot無法找到它!

+0

那麼你對此做了什麼? – Baz

+0

我不知道確切的解決方案 - 我只是測試人員,開發軟件本身不是我的業務。我告訴開發者,我有這個問題,我懷疑消息框是一個本地部件。他構建了一種解決方法,在運行SWTBot測試時會顯示虛擬SWT消息框。我不完全怎麼做,但這是一個可行的解決方案。 – Ethon