首页 > 解决方案 > 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()
    

标签: pythonwpfautomationpywinautoinspect

解决方案


方法ctrl.get_value()是你需要的。如果您不知道自己在做什么,则不应尝试手动创建包装器。


推荐阅读