如何使用 pywinauto 从没有标题或 ID 的静态无名 object 中获取信息?
How do you get the information from a static nameless object with no title or id using pywinauto?
我有一个程序故意阻止任何文本选择。他们甚至在 UI 方面也使它无法寻址。我想从 "Current Height" Static - '' object 中获取文本信息。我可以在界面上看到文本,但您无法单击它,使用 WinSpy 它也没有提供任何信息。有标题的 "Current height" 只是一个标签 ('Static3') 但有信息的 'Static4'.
Dialog - 'STATE MACHINE' (L378, T149, R1670, B933)
['STATE (Machine: 5799)', 'Dialog', 'STATE MACHINE']
child_window(title="STATE MACHINE", class_name="#32770")
|
| GroupBox - '' (L388, T200, R1662, B276)
| ['StateGroupBox', 'GroupBox', 'GroupBox0', 'GroupBox1']
| child_window(class_name="Button")
|
| Static - '' (L386, T265, R1662, B286)
| ['Static', 'StateStatic', 'Static0', 'Static1', 'StateStatic0', 'StateStatic1']
| child_window(class_name="Static")
|
| Static - '' (L386, T341, R1662, B362)
| ['Static2', 'StateStatic2']
| child_window(class_name="Static")
| Static - 'Current height:' (L625, T512, R700, B525)
| ['Static3', 'Current height:', 'Current height:Static', 'Current height:Static0', 'Current height:Static1']
| child_window(title="Current height:", class_name="Static")
|
| Static - '' (L625, T528, R1330, B606)
| ['Static4', 'Current height:Static2']
| child_window(class_name="Static")
由于程序是专有的,我无法显示 GUI。
因为 print_control_identifiers() 似乎将 object 视为 'Static4',我有办法将其用作标识符吗?我似乎无法使用:
label = win.child_window(title="static4", class_name="Static")
如果我尝试过:
label.print_control_identifiers()
我会得到找不到元素的错误。
根据上面的打印元素,没有标题为 "static4" 的项目,这就是引发错误的原因。看起来所有列出的元素的标题都是 ''
.
获取元素的正确方法是:
label = win.Static4
这样做,您就可以打印控件标识符了。有关参考,请参阅 here,其中讨论了 Marginsinches
。
我有一个程序故意阻止任何文本选择。他们甚至在 UI 方面也使它无法寻址。我想从 "Current Height" Static - '' object 中获取文本信息。我可以在界面上看到文本,但您无法单击它,使用 WinSpy 它也没有提供任何信息。有标题的 "Current height" 只是一个标签 ('Static3') 但有信息的 'Static4'.
Dialog - 'STATE MACHINE' (L378, T149, R1670, B933)
['STATE (Machine: 5799)', 'Dialog', 'STATE MACHINE']
child_window(title="STATE MACHINE", class_name="#32770")
|
| GroupBox - '' (L388, T200, R1662, B276)
| ['StateGroupBox', 'GroupBox', 'GroupBox0', 'GroupBox1']
| child_window(class_name="Button")
|
| Static - '' (L386, T265, R1662, B286)
| ['Static', 'StateStatic', 'Static0', 'Static1', 'StateStatic0', 'StateStatic1']
| child_window(class_name="Static")
|
| Static - '' (L386, T341, R1662, B362)
| ['Static2', 'StateStatic2']
| child_window(class_name="Static")
| Static - 'Current height:' (L625, T512, R700, B525)
| ['Static3', 'Current height:', 'Current height:Static', 'Current height:Static0', 'Current height:Static1']
| child_window(title="Current height:", class_name="Static")
|
| Static - '' (L625, T528, R1330, B606)
| ['Static4', 'Current height:Static2']
| child_window(class_name="Static")
由于程序是专有的,我无法显示 GUI。
因为 print_control_identifiers() 似乎将 object 视为 'Static4',我有办法将其用作标识符吗?我似乎无法使用:
label = win.child_window(title="static4", class_name="Static")
如果我尝试过:
label.print_control_identifiers()
我会得到找不到元素的错误。
根据上面的打印元素,没有标题为 "static4" 的项目,这就是引发错误的原因。看起来所有列出的元素的标题都是 ''
.
获取元素的正确方法是:
label = win.Static4
这样做,您就可以打印控件标识符了。有关参考,请参阅 here,其中讨论了 Marginsinches
。