问题描述
我正在尝试自动化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
-
启动app.exe
app = pywinauto.application.Application(backend='uia').start('app.exe')
-
识别窗口
wind = app.window(auto_id="someid")
-
找到进度条控件
ctrl = wind.window(auto_id='progress')
-
获取控制进度条的文本
ctrl.window_text()
解决方法
您需要的是方法ctrl.get_value()
。如果您不知道自己在做什么,则不应尝试手动创建包装器。