【问题标题】:Missing control identifier - pywinauto缺少控件标识符 - pywinauto
【发布时间】:2021-11-27 17:36:20
【问题描述】:

print_control_identifier() 函数似乎没有列出所有控件。

我尝试自动化的窗口如下所示:

我正在尝试访问“编辑字段”标题下方的“加号”。我可以获得添加了 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 月 2 日更新

对象本身不返回任何内容,但 print 返回以下内容:

print(app.EditField.child_window(title="ToolBar", class_name="TToolBar").wrapper_object())
>>> common_controls.ToolbarWrapper - 'ToolBar', Toolbar

然后返回:

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']

主窗口是“XXXX XXXX.scp - SICK CDS S100”。从那里打开“S100 - S10B9011DA”窗口,从那里您可以访问“编辑字段”

【问题讨论】:

  • dlg_spec.child_window(title="ToolBar", class_name="TToolBar").buttons() 返回什么?你能看到非空列表并走它吗?此外,最好将 Inspect.exe 切换到“UI 自动化”模式而不是 MSAA。
  • 我更新了问题。
  • 也许“编辑字段”窗口是主窗口的子窗口? backend="uia" 是正常情况,"win32" 应该是顶级窗口。请添加这些语句的输出:print([w.window_text() for w in app.windows()])app.EditField.child_window(title="ToolBar", class_name="TToolBar").wrapper_object()
  • 感谢您一直以来的支持!我再次更新了问题。

标签: python pywinauto


【解决方案1】:

好的,ToolbarWrapper 的正确方法是.button_count().button(0) 以及.texts().tip_texts()。请参阅 ToolbarWrapper docs 获取“win32”ToolbarWrapper。

方法.button(0).button("Plus")(如果此文本在.texts() 中可见)返回具有以下方法的_toolbar_button 对象:参见_toolbar_button docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多