Pywinauto操作桌面应用时输入到错误字段问题求助
Pywinauto填错字段的排查方案
定位逻辑存在歧义:你用的
app.SISLOGSistemadeinformaçõeslogísticasRodoviário.Pessoa.Edit是按层级+控件类型定位,Pessoa节点下大概率不止一个Edit控件,Pywinauto默认会匹配第一个找到的Edit,自然会填错。精准定位控件:先执行以下命令打印
Pessoa节点下所有控件的详细属性:app.SISLOGSistemadeinformaçõeslogísticasRodoviário.Pessoa.print_control_identifiers()从输出里找到目标输入框的专属属性(比如
automation_id、friendly_name、带提示文本的控件描述),然后用这些属性缩小范围,比如:# 示例:用automation_id定位 app.SISLOGSistemadeinformaçõeslogísticasRodoviário.Pessoa.Edit(automation_id="txtCNPJ").set_edit_text("077775555000100") # 或者用friendly_name定位 app.SISLOGSistemadeinformaçõeslogísticasRodoviário.Pessoa.Edit(friendly_name="CNPJ/CPF输入框").set_edit_text("077775555000100")验证控件层级关系:对照你的应用程序树截图,确认目标输入框的父节点是不是直接在
Pessoa下。如果目标Edit在Pessoa的子容器(比如某个GroupBox、Panel)里,你需要把层级补全,比如app.SISLOG...Pessoa.GroupBox.Edit(...)。慎用索引定位:如果暂时找不到专属属性,也可以用索引区分多个
Edit,比如Edit(index=1),但这种方式不稳定,一旦界面控件顺序变化就会失效,优先推荐用固定属性定位。
内容的提问来源于stack exchange,提问作者Eduardo
相关产品推荐
相关产品推荐

