Найти - Пользователи
Полная версия: pywinauto - GUI Automation
Начало » Python проекты » pywinauto - GUI Automation
1 2 3
Tiberium
Но это консольное приложение на C#, там такой подход наверное не подойдёт..
Вот пример кода:
from pywinauto.application import Application
app = Application.start("notepad.exe")
app.UntitledNotepad.TypeKeys("Привет мир!")
(взят из документации)
Лог pywinauto:2015-07-01 18:44:28,054 INFO: Typed text to the Notepad: Привет мир!
Что в блокноте:@825B<8@!
UPD:Версия Python 3.4, Windows 7 сборка 7600 x64
vvryabov

Но это консольное приложение на C#, там такой подход наверное не подойдёт.. Извини, но мы с коллегами поржали немного.

.

В версии 0.5.1 проблем с pip больше не должно быть. Примером для русского языка займусь попозже. Можешь глянуть в репозитории examples/test_sakura.py (на японском) и сделать по аналогии на русском. Ключевая строка - самая верхняя в шапке.

.

В августе займусь плотнее документацией.

JOHN_16
vvryabov
Коль вы мониторите тему здесь, то здесь и спрошу.
Посмотрите пожалуйста вот на эту запись моего блога. Если вам нравится этот функционал. м.б. я подготовлю для проекта pull-request ? Добавив функцию как метод класса Application ?
vvryabov

JOHN_16

Да, я видел эту запись раньше. Тут есть пара нюансов. Не хочется добавлять новую зависимость от psutil. Кроме того, в методе start_ есть in-place функция AppIdle(). Логичнее было бы на её основе сделать общедоступный метод WaitAppIdle(), добавив заодно параметр timeout.

.

Ещё один вопрос, сильно ли это отличается от вызова вроде app.Dialog.Wait('ready', timeout=300). На первый взгляд практически ничем. Надо только в доках всю эту методику подробней расписать.

.

А так любой полезный и обоснованный contribution мы приветствуем.

vvryabov

Вышел релиз 0.5.2 с методами класса Application: CPUUsage() и WaitCPUUsageLower(). Появилось 2 новых примера на install/uninstall вот здесь: https://gist.github.com/vasily-v-ryabov

algoriatchev
Я использую Python3/pywinauto/и сама апликуха - все 64. вылетает ошибка на строке

tree_item = systreeview.GetItem()

Не подскажите как решить или подскажите место , где можно узнать отвт. На 32 апликухе все летало.
Спасибо

log: File “C:\Python36\lib\site-packages\pywinauto\controls\common_controls.py”, line 1523, in get_item texts = File “C:\Python36\lib\site-packages\pywinauto\controls\common_controls.py”, line 1523, in texts = File “C:\Python36\lib\site-packages\pywinauto\controls\common_controls.py”, line 960, in text return self._readitem() File “C:\Python36\lib\site-packages\pywinauto\controls\common_controls.py”, line 1383, in _readitem remote_mem) ctypes.ArgumentError: argument 4: : int too long to convert
vvryabov

Ошибка интересная. Эта функциональность хорошо тестируется автоматически, в том числе на 64-битных приложениях и Python 3.6. Пока не пробовал воспроизвести, т.к. очень занят. Но если есть возможность приватно расшарить аппликуху (готов подписать NDA, если нужно), то можно высылать на gmail почту (в нике на гитхабе заменить чёрточки на точки). Так, возможно, будет быстрее воспроизвести.

P.S. Ну, и для всех напомню, что pywinauto 0.6.2, вышедший в феврале, поддерживает еще и MS UI Automation (backend='uia' при создании Application), а это гораздо более широкий спектр приложений. Пока отсылаю к Getting Started Guide в доках на сайте. Статья на Хабр готовится.

PooH
А часом там не 32 разрядный питон под 64 разрядной виндой?!
algoriatchev
Сорри за молчание, у нас выходной был. Дать доступ хотел бы , но не могу.

//А часом там не 32 разрядный питон под 64 разрядной виндой?!//
Нет, все 64. Даже менял 2,7 на 3,6 и обратно (все 64). Все бежит хорошо, пока не касается treeview.

Update. Лечится строкой
win32functions.SendMessage.argtypes = квадратные скобки HWND, UINT, WPARAM, ctypes.c_void_p квадратные скобки
vvryabov, куда ее вставить?
vvryabov

А, понятно. Это из-за того, что во многих местах мы перешли на аналогичную функцию из pyWin32 расширений, но где-то остался вызов через ctypes. Можно прямо в win32functions.py вставить (повлияет на все подобные вызовы в лучшую сторону... надеюсь) и посмотреть, сойдутся ли тесты на AppVeyor (pull request автоматически тестится). Как раз есть шанс фиксу попасть в готовящийся 0.6.3. По мелочи там много выгребли нестабильностей и неточностей, в том числе в win32 бэкенде. Кстати, если не лень будет проверить текущий мастер бранч на большом проекте, это была бы полезная инфа. Хоть покрытие тестами и около 95% держим, corner cases всё равно периодически вылезают.

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB