Ошибки PyWinAuto

ImportError: DLL load failed while importing win32api: The specified module could not be found

ImportError: DLL load failed while importing win32api: The specified module could not be found

Эта ошибка не связана с pywinauto. Скорее всего было повторно активировано виртуальное окружение. Если вы запускаете тесты скриптами проверьте сколько раз присутствует .\venv\Scripts\activate

ElementAmbiguousError: There are 2 elements that match the criteria

Запустим скрипт из статьи про Блокнот два раза подряд

# notepad_demo.py from pywinauto.application import Application app = Application(backend="uia").start("C:\Windows\System32\notepad.exe")

Откроется два блокнота. После первого запуска мы никаких сообщений об ошибках не будет

python notepad_demo.py

Process finished with exit code 0

После второго запуска будет предупреждение

python notepad_demo.py

C:\A\venv\Lib\site-packages\pywinauto\application.py:1076: RuntimeWarning: Application is not loaded correctly (WaitForInputIdle failed) warnings.warn('Application is not loaded correctly (WaitForInputIdle failed)', RuntimeWarning) Process finished with exit code 0

Я подозреваю, что уже здесь PyWinAuto не понимает с каким из двух блокнтово нужно работать. Для развития этой темы я пытаюсь подключиться к приложению.

# notepad_demo.py from pywinauto.application import Application app = Application(backend="uia").start("C:\Windows\System32\notepad.exe")

# notepad_demo.py from pywinauto.application import Application app = Application(backend="uia").start("C:\Windows\System32\notepad.exe") app.connect(title="Untitled - Notepad", timeout=100)

Снова откроется два блокнота. После первого запуска мы никаких сообщений об ошибках не будет

python notepad_demo.py

Process finished with exit code 0

После второго запуска появится подробное сообщение об ошибке

python notepad_demo.py

C:\A\venv\Lib\site-packages\pywinauto\application.py:1076: RuntimeWarning: Application is not loaded correctly (WaitForInputIdle failed) warnings.warn('Application is not loaded correctly (WaitForInputIdle failed)', RuntimeWarning) Traceback (most recent call last): File "C:\A\pywinauto\notepad\minimal.py", line 9, in <module> app.connect(title="Untitled - Notepad", timeout=100) File "C:\A\venv\Lib\site-packages\pywinauto\application.py", line 990, in connect self.process = timings.wait_until_passes( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\A\venv\Lib\site-packages\pywinauto\timings.py", line 436, in wait_until_passes func_val = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "C:\A\venv\Lib\site-packages\pywinauto\findwindows.py", line 98, in find_element raise exception pywinauto.findwindows.ElementAmbiguousError: There are 2 elements that match the criteria {'title': 'Untitled - Notepad', 'backend': 'uia', 'visible_only': False} Process finished with exit code 1

Автор статьи: Андрей Олегович