Pywinauto-如何获取将动态变化的元素的“值”属性进度条

问题描述

我正在尝试自动化wpf应用程序backend = 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()
    

解决方法

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...