Ошибки PyWinAuto
| ImportError: DLL load failed while importing win32api: The specified module could not be found. | |
| ElementAmbiguousError: There are 2 elements that match the criteria | |
| Похожие статьи |
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
Автор статьи: Андрей Олегович
| Автоматизация | |
| pywinauto | |
| Основы | |
| Python |