Pull to refresh

Comments 11

На Windows в плане автоматизации с Tk не очень все хорошо. Вот смотрю демо из Python 2.7.13. Все элементы видны, но не у всех можно определить тип контрола, а у менюшек даже текста нету (ни через Win32 API, ни через UI Automation).


На линуксах пока Tk не смотрели, может там получше.
Для поддержки accessibility на Linux для Tk есть старенький питоновский пакет: Tka11y. Давно не обновлялся и под винду не портировался.


На поддержку Tk сейчас нет ресурсов. Если есть опыт с Tk, мы рады любой помощи. Вот тут была кое-какая переписка на гитхабе:
https://github.com/pywinauto/pywinauto/issues/84

Подскажите пожалуйста, есть ли инспектор GUI объектов под Linux? Желательно бесплатный.

Вот здесь кое-что упомянуто. Сам не пробовал. Не уверен, что он использует именно AT-SPI. Планируем сделать собственный инспектор объектов в комплекте, в том числе для AT-SPI. На PyQt5 с учётом архитектуры pywinauto такой инспектор делается за сотню строк кода максимум. Конечно, когда будет готов AT-SPI бэкенд в pywinauto.


Python упрощает создание спецификаций окна и распознает атрибуты объекта динамически (внутри переопределен метод __getattribute__).


За конкретно вот это вот, в данной либе, хочется руки отрубать и переставлять в более подходящие отверстия.

Такого мнения ещё не встречал. Так что на этом месте прошу подробнее. Просто не нравится или мешает чему-то конкретному?

Надо же работает! :) Спасибо!
>>> from pywinauto.application import Application
… import pywinauto

>>> app = Application(backend=«win32»).start(r'C:\ARL7\Bin\Mebel.exe')
Ить запустилось наше к3 :)
смотрю окна
>>> app.windows()

...., <hwndwrapper.DialogWrapper — 'Реестр заказов',…
>>> reestr_z =app.window(title_re='.*Реестр заказов')

>>> reestr_z.print_control_identifiers(depth=None, filename=None)
Control Identifiers:
[omitting some output]

WindowsForms10.Window.8.app.0.1fed012_r71_ad1 — 'Реестр заказов' (L141, T87, R1202, B724)
['Реестр заказов', 'Реестр заказовWindowsForms10.Window.8.app.0.1fed012_r71_ad11', 'Реестр заказовWindowsForms10.Window.8.app.0.1fed012_r71_ad10', 'Реестр заказовWindowsForms10.Window.8.app.0.1fed012_r71_ad1', 'WindowsForms10.Window.8.app.0.1fed012_r71_ad10', 'WindowsForms10.Window.8.app.0.1fed012_r71_ad11', 'WindowsForms10.Window.8.app.0.1fed012_r71_ad1']
child_window(title=«Реестр заказов», class_name=«WindowsForms10.Window.8.app.0.1fed012_r71_ad1»)
|
| Button — 'Справка' (L1119, T118, R1194, B141)
| ['СправкаButton', 'Button', 'Button0', 'Button1', 'Справка']
| child_window(title=«Справка», class_name=«WindowsForms10.BUTTON.app.0.1fed012_r71_ad1»)
|

и еще 8000 строк

:)

Как бы эту штуку работать за меня заставить?!

На здоровье! Осталось только machine learning прикрутить. :) Акциями же торгуют боты, почему мебелью нельзя?

Это CAD. :)
Ещё вопрос по SWAPY. Работает ли для 3-го питона?

SWAPY сейчас не поддерживается. Он совместим только со старой версией pywinauto 0.5.4, где был единственный backend="win32" и все методы в стиле CamelCase. Вроде бы на третьем питоне он работал. В любом случае, pywinauto 0.5.4 работает на третьем питоне, как и более новые.


Вообще, у меня студенты набросали инспектор объектов: https://github.com/pywinauto/py_inspect
Всего на 150 строк кода. Правда, полуручного генератора скриптов там нет, зато можно переключать бэкенды. В будущем мы хотим вернуться к нему и полноценно встроить в экосистему, если раньше кто-нибудь не поможет.


Сейчас главные приоритеты — это генератор скриптов в стиле "record-replay" и поддержка Линукса.

Sign up to leave a comment.

Articles