2017-06-05 71 views
0

我是Pywinauto的新手,嘗試在登錄到遠程桌面應用程序後單擊「ENTER」。桌面窗口有一個使用免責聲明和「確定」按鈕,我可以按「ENTER」或鼠標移動以單擊「確定」。下面是代碼段和我得到的錯誤。AttributeError:WindowSpecification類沒有'typekeys'方法

rem_app = Application(backend="uia").connect(title_re='.*Remote desktop.*') 
dlg_rem = rem_app.window(title_re='.*Remote desktop.*') 
dlg_rem.set_focus() 
dlg_rem.typekeys('{ENTER}') 

Error: Traceback (most recent call last): File "", line 1, in File "C:\Python27\lib\site-packages\pywinauto\application.py", line 171, in call format(self.criteria[-1]['best_match'])) AttributeError: WindowSpecification class has no 'typekeys' method

我也用了低於尋找其他相關計算器問題:

  1. keyboard.sendkeys( '{ENTER}')
  2. dlg_rem.sendkeys(「{ENTER }')

以下是print_control_identifiers()描述的「OK」按鈕。

| | | | Pane - '' (L403, T360, R1671, B1320) 
    | | | | [u'3', 'Pane4'] 

    | | | | | 
    | | | | | Pane - 'Input Capture Window' (L403, T360, R1671, B1320) 
    | | | | | [u'Input Capture Window', u'Input Capture WindowPane', 'Pane5'] 
    | | | | | child_window(title="Input Capture Window", control_type="Pane") 

我想知道在這兩種情況下如何使用sendkeys和鼠標移動點擊「OK」。

回答

0

正確的方法名稱是.type_keys('{ENTER}')。它在輸入之前將焦點設置爲目標窗口。

如果你不需要自動對焦,只需使用keyboard.SendKeys('{ENTER}')而不綁定到任何應用程序(0.6.3。將有keyboard.send_keys別名,符合PEP8指導方針)。

P.S.不建議使用遠程桌面(使用任何工具)自動執行任何操作,因爲RDP不會將UI輔助功能向本地機器公開。只需將腳本複製到遠程機器並在那裏運行即可。

如果你需要幾個遠程機器上同時運行GUI自動化任務,檢查這些答案的詳細信息: