Pywinauto - как получить свойство «значение» элемента (индикатор выполнения), которое будет динамически изменяться

Я пытаюсь автоматизировать бэкэнд приложения wpf = uia, для индикатора выполнения мне нужно получить динамически изменяющийся атрибут значения, но когда я использовал window_text(), я получаю '', затем я пытался передать управление в этой оболочке pywinauto.application.controls.uia_controls.UIAElementInfo(ctrl).name, получая эту ошибку TypeError("UIAElementInfo object can be initialized " + \ "with integer or IUIAutomationElement instance only! ) и, наконец, попытался передать элемент в следующем классе Progresswrapper pywinauto.controls.common_controls.ProgressWrapper(element_info).get_position(), получая element_info, который должен быть hwndwrapper.

это мой код app.py

  1. запустить app.exe

    app = pywinauto.application.Application(backend='uia').start('app.exe')
    
  2. идентификация окна

    wind = app.window(auto_id="someid")
    
  3. поиск индикатора выполнения

    ctrl = wind.window(auto_id='progress') 
    
  4. получение текста индикатора выполнения элемента управления

    ctrl.window_text()
    

person vasanth s    schedule 26.08.2020    source источник


Ответы (1)


Метод ctrl.get_value() - это то, что вам нужно. Не следует пытаться создавать обертки вручную, если вы не знаете, что делаете.

person Vasily Ryabov    schedule 28.08.2020
comment
Что, если это не сработает? За ListItemWrapper я получаю AttributeError: 'ListItemWrapper' object has no attribute 'value'. Однако Inspect.exe показывает правильное значение. - person Osman-pasha; 30.03.2021
comment
Метод .get_value() и свойство Value имеют разные имена. Пожалуйста, отредактируйте свой вопрос, указав больше кода, который вы пытаетесь использовать. Имена методов Pywinauto не обязательно должны совпадать с именами в Inspect.exe. - person Vasily Ryabov; 01.04.2021
comment
Также переключите Inspect.exe в режим автоматизации пользовательского интерфейса из MSAA. - person Vasily Ryabov; 01.04.2021
comment
Хм, интересно. Да, get_value отлично работает, спасибо! - person Osman-pasha; 05.04.2021