2012-07-30 65 views
1

我有一個測試FEST應用程序,它使用AWT機器人模擬Swing界面上的某些操作。我的問題是,在機器人測試執行過程中移動鼠標指針似乎取消了一些編程操作,如按列標題。如果你在執行過程中不碰任何東西,那麼光標就會獨立移動到目標並擊中目標。在Java Swing中嵌入鼠標輸入

有沒有什麼方法阻止該應用程序的鼠標用戶輸入,直到測試完成?

也許不是塊而是一個辦法忽略的事件,力EDT完成或屏蔽機器人,將不勝感激當然

+0

它不應該,但預計不會在短期內。目前僅在Windows中使用。 – Whimusical 2012-07-30 19:40:19

回答

1

的也許你可以關閉使用本地終端命令的鍵盤和鼠標。 I.e cmd.exe for Windows和Linux終端(取決於應用程序必須是便攜式,只需要check os name然後運行正確的命令),但我不確定這是否會導致Robot無用。我想不是。

的Windows:

的cmd.exe/c%HOMEDRIVE%\ WINDOWS \ RUNDLL32.EXE鼠標,禁用

的cmd.exe/c%HOMEDRIVE%\ WINDOWS \ RUNDLL32.EXE鍵盤,禁用

和Linux,請參閱here

附錄

據我所知,如果不使用JNI禁用用戶的鍵盤和鼠標輸入,純Java是不可能的。

下面是disbaling鼠標和鍵盤在Java中使用JNI有很大的聯繫:Java Global Keyboard/Mouse Hook - JNI

+1

林不知道這將是一個很好的選擇,因爲我將不得不在Java範圍之外執行它,我需要機器人在輸入就緒模式和非輸入就緒模式之間切換。但當然這是一個非常有趣的信息,它也超出了問題的範圍,它也是一個開始,如果沒有其他任何東西可以從Java以編程方式在Java中完成,我可以依賴它。謝謝!! – Whimusical 2012-07-30 19:45:20

+0

@ user1352530它很高興,請參閱我的編輯它可能證明富有成果:) – 2012-07-30 19:53:39

0

如果你是耐寒使用AWT機器人終端到終端的測試發展,然後嘗試單獨測試,能夠只運行檢查觸摸功能的部分,而所有端到端測試應該在構建服務器上運行。

這裏是Swing應用程序,頭少構建的服務器上完成終端到終端的測試由AWT機器人的結果: http://travis-ci.org/#!/plokhotnyuk/calculator/jobs/1979904/L538