관리 메뉴

bright jazz music

pywinauto : 자동로그인 본문

기타

pywinauto : 자동로그인

bright jazz music 2022. 6. 24. 17:10
from msilib import type_key
from pywinauto import application
from pywinauto import timings
import time
import os

app = application.Application()
app.start("C:/Program Files (x86)/NetMan/PClient/PClientUI.exe")
# ' / ' 대신 ' \ '를 사용하면 유니코드 에러 발생 

# title = 'PClientUI'           swapy에 표시된 이름 그대로 사용해야함
# title = 'PClient(32비트)'      swapy에 표시된 이름 그대로 사용해야함
title = '보안접속 - PClient'

# dlg = timings.wait_until_passes(20, 0.5, lambda: app.window(title=title))     //입력되지 않음. app.connect 사용필요
dlg = timings.wait_until_passes(20, 0.5, lambda: app.connect(title=title)).Dialog

id_ctrl = dlg.Edit1
time.sleep(1)

# print('dlg.Edit1=', dlg.Edit1)
# print('id_ctrl=', id_ctrl.text)

id_ctrl.set_focus()
id_ctrl.type_keys("loginID") //로그인 할 아이디 입력
#
pw_ctrl = dlg.Edit2
time.sleep(1)
pw_ctrl.set_focus()
pw_ctrl.type_keys('password1234') //비밀번호 입력
#
# btn_ctrl = dlg.Button1
# btn_ctrl.click()

swapy 사용

 

 

 

swapy64bit.exe
13.57MB

 

 

실제 실행 시 오류

C:\Users\markany-hjcha\AppData\Local\Microsoft\WindowsApps\python3.10.exe D:/personal/pymath/np/auto_login.py
C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\application.py:1085: UserWarning: 32-bit application should be automated using 32-bit Python (you use 64-bit Python)
  warnings.warn(
C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\application.py:1085: UserWarning: 32-bit application should be automated using 32-bit Python (you use 64-bit Python)
  warnings.warn(
dlg.Edit1= <pywinauto.application.WindowSpecification object at 0x0000025CCB6A3130>
Traceback (most recent call last):
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\application.py", line 250, in __resolve_control
    ctrl = wait_until_passes(
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\timings.py", line 458, in wait_until_passes
    raise err
pywinauto.timings.TimeoutError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\personal\pymath\np\auto_login.py", line 22, in <module>
    print('id_ctrl=', id_ctrl.text)
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\application.py", line 379, in __getattribute__
    ctrls = self.__resolve_control(self.criteria)
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\application.py", line 261, in __resolve_control
    raise e.original_exception
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\timings.py", line 436, in wait_until_passes
    func_val = func(*args, **kwargs)
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\application.py", line 222, in __get_ctrl
    ctrl = self.backend.generic_wrapper_class(findwindows.find_element(**ctrl_criteria))
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\findwindows.py", line 84, in find_element
    elements = find_elements(**kwargs)
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\findwindows.py", line 305, in find_elements
    elements = findbestmatch.find_best_control_matches(best_match, wrapped_elems)
  File "C:\Users\markany-hjcha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pywinauto\findbestmatch.py", line 536, in find_best_control_matches
    raise MatchError(items = name_control_map.keys(), tofind = search_text)
pywinauto.findbestmatch.MatchError: Could not find 'Edit1' in 'dict_keys(['알림Static', 'Static', '알림', '로그인 되었습니다.', 'Static0', 'Static1', 'Static2', '로그인 되었습니다.Static', 'hjcha 님으로', 'Static3', 'hjcha 님으로Static', 'Button', '닫기Button', '닫기'])'

Process finished with exit code 1

 

Comments