2011-12-29 131 views
0

我正在修復使用java.awt.Robot來操縱測試應用程序的自定義測試運行器。
經過每一個最簡單的操作(鼠標點擊某個組件,點擊鼠標),我需要測試運行器TO WAIT爲測試過程中的應用程序處理事件。只有在此後繼續檢查值,點擊其他一些按鈕等。
有可能等待事件隊列變空的Robot.waitForIdle()函數。
但由於提前檢查值(假設值不是在某些後臺線程中計算的值,而是非常美觀的線程),我仍然遇到同步問題。
我的猜測是由於Robot並沒有直接將事件放入事件隊列中,而是讓底層操作系統將Robot生成的新事件放入JVM事件隊列。而且這個本地調用是異步的,意味着將新事件放入事件隊列不會由不像SwingUtilities.invokeLater()那樣的任何JVM線程執行。將測試運行器與測試應用程序同步

是否可以實現一些掛鉤來確定或等待底層操作系統將新事件放入事件隊列?
我錯過了什麼嗎?

謝謝。

回答