2012-08-31 64 views
3

我有一個測試情況下,我有自動在Windows UI用戶操作,UI自動化Windows用戶登錄

The scenario is that windows password has expired, and when user tries to login to the system, the reset password page appears and user inputs new password and login succeeds.

現在我必須通過一個腳本來做到這一點,

的好處是我有一臺運行在機器上的python服務,如果需要登錄,我可以通過它傳遞命令。

我已經Google搜索了很多,但找不到任何類似的東西。

會很高興,如果任何人都可以點我針對我的任何問題,

什麼應該是我這個UI自動化參考點?

+3

我不認爲這是可能的想法。出於明顯的原因,登錄提示出現在安全的桌面上,我不認爲你有任何可以通過程序與之進行交互的方式。 –

+0

可以像AutoIT或python Sendkeys模塊在屏幕上幫助我? – user1637781

+0

您可以構建一個連接到USB併發送密鑰的機器人。 – zenpoy

回答

2

如果您試圖自動化Windows登錄用戶界面,我相信這是可能的,但它需要您使用Windows服務來運行您的測試代碼。聽起來你可能已經這麼做了,因爲你提到了一個Python服務,你可以用它來運行命令,而沒有用戶登錄到Windows。

無論如何,Windows服務是我知道這樣做的唯一方式(不禁用UAC或以其他方式修改默認的Windows安全配置)。

見我回答這個問題的一些指針:

UAC and remote control

如果你的Python代碼與Windows服務的權限下運行,它應該能夠在系統上的任何UI交互(或者至少啓動可以與安全UI進行交互的其他進程),包括Windows登錄桌面。

唯一令人頭疼的可能是,爲了與Winlogon桌面交互,您的測試代碼可能需要使用CreateProcessAsUser函數啓動一個單獨的程序(並將「Winsta0 \ Winlogon」作爲桌面參數傳遞)。不知道,但。

這個答案也像它可能是您的情況有所幫助:

Running a process at the Windows 7 Welcome Screen