缺少控件标识符 - pywinauto
Missing control identifier - pywinauto
print_control_identifier() 函数似乎没有列出所有控件。
我尝试自动化的 window 看起来像这样:
我正在尝试访问“编辑字段”标题下方的“加号”。我可以获得添加了 4 个控件的栏的标识符,但没有它的子项。酒吧本身是:
| Toolbar - 'ToolBar' (L1586, T836, R2254, B875)
| ['ToolBar', 'ToolBarToolbar', 'Toolbar2']
| child_window(title="ToolBar", class_name="TToolBar")
更新:使用“UI 自动化”模式
通过 Inspect,我可以获得工具栏和“加号”的以下详细信息。
带检查功能的工具栏
带检查功能的按钮
有没有办法通过Inspect给出的详细信息通过ChildId访问控件?或者其他方式?
后端是默认的“win32”。将其更改为“uia”并没有显示更多信息。
更新时间:2021-12-01
以下结果为AttributeError。
buttons = app.EditField.child_window(title="ToolBar", class_name="TToolBar").buttons()
>>> AttributeError: Neither GUI element (wrapper) nor wrapper method 'buttons' were found (typo?)
更新 2021-12-02
object 本身 return 除了打印 return 之外什么都没有:
print(app.EditField.child_window(title="ToolBar", class_name="TToolBar").wrapper_object())
>>> common_controls.ToolbarWrapper - 'ToolBar', Toolbar
以及以下 returns:
print([w.window_text() for w in app.windows()])
>>> ['', 'Edit field', 'S100 - S10B9011DA', 'Progress', 'Enter numerical', '', 'xxxxxxx xxxxxxxx.scp - SICK CDS S100', 'CDS S100', '', .... '', 'DDE Server Window', '', 'M', 'Default IME']
主要window是'XXXX XXXX.scp - SICK CDS S100'。从那里打开 window 'S100 - S10B9011DA',从那里你可以访问 'Edit field'
好的,ToolbarWrapper 的正确方法是 .button_count()
和 .button(0)
以及 .texts()
和 .tip_texts()
。请参阅 ToolbarWrapper docs“win32”ToolbarWrapper。
方法 .button(0)
或 .button("Plus")
(如果此文本在 .texts()
中可见)returns _toolbar_button
具有以下方法的对象:请参阅 _toolbar_button docs.
print_control_identifier() 函数似乎没有列出所有控件。
我尝试自动化的 window 看起来像这样:
我正在尝试访问“编辑字段”标题下方的“加号”。我可以获得添加了 4 个控件的栏的标识符,但没有它的子项。酒吧本身是:
| Toolbar - 'ToolBar' (L1586, T836, R2254, B875)
| ['ToolBar', 'ToolBarToolbar', 'Toolbar2']
| child_window(title="ToolBar", class_name="TToolBar")
更新:使用“UI 自动化”模式
通过 Inspect,我可以获得工具栏和“加号”的以下详细信息。
带检查功能的工具栏
带检查功能的按钮
有没有办法通过Inspect给出的详细信息通过ChildId访问控件?或者其他方式?
后端是默认的“win32”。将其更改为“uia”并没有显示更多信息。
更新时间:2021-12-01
以下结果为AttributeError。
buttons = app.EditField.child_window(title="ToolBar", class_name="TToolBar").buttons()
>>> AttributeError: Neither GUI element (wrapper) nor wrapper method 'buttons' were found (typo?)
更新 2021-12-02
object 本身 return 除了打印 return 之外什么都没有:
print(app.EditField.child_window(title="ToolBar", class_name="TToolBar").wrapper_object())
>>> common_controls.ToolbarWrapper - 'ToolBar', Toolbar
以及以下 returns:
print([w.window_text() for w in app.windows()])
>>> ['', 'Edit field', 'S100 - S10B9011DA', 'Progress', 'Enter numerical', '', 'xxxxxxx xxxxxxxx.scp - SICK CDS S100', 'CDS S100', '', .... '', 'DDE Server Window', '', 'M', 'Default IME']
主要window是'XXXX XXXX.scp - SICK CDS S100'。从那里打开 window 'S100 - S10B9011DA',从那里你可以访问 'Edit field'
好的,ToolbarWrapper 的正确方法是 .button_count()
和 .button(0)
以及 .texts()
和 .tip_texts()
。请参阅 ToolbarWrapper docs“win32”ToolbarWrapper。
方法 .button(0)
或 .button("Plus")
(如果此文本在 .texts()
中可见)returns _toolbar_button
具有以下方法的对象:请参阅 _toolbar_button docs.