如题最近想做 windows 的自动化选择的工具是 pywinauto+inspect,但是当我碰到一个窗口下还有多个窗口的情况发现无论如何也获取不到相应的信息,在 inspect 下是可以看到这个元素的 class_name 等元素值,但是当我想选择这个元素做点击,获取属性等操作时缺提示我找不到这个元素,然后用 print_control_identifiers() 函数打印时,发现打印出来的数据,确实没有这个元素,当遇到这种情况时,要怎么操作呢?
图 1 为 inspect 查看元素
当我获取控制面板这个窗口后,如果直接用 click 方法点击会提示我没有这个元素找不到,所以我用 print_control_identifiers() 打印出来数据,确实没有发现图 1 里的 class_name
图 2
打印出来的数据,其实到图 2 里的那个层级,下面的都没有打印出来
图 3
有没有用过 pywinauto 的朋友帮忙指点一下,网上大多都是说用 child_window 这个函数可以垮层级获取窗口,但是我需要的窗口写上 class_name 都提示我找不到
示例代码
from pywinauto.application import Application
app = Application(backend = "uia").start("control.exe") # 开启程序
app = Application().connect(title_re="控制面板", class_name="CabinetWClass",timeout=10) # 连接程序
ret = app.window(class_name='CabinetWClass')# 返回窗口
ret = ret.child_window(class_name='DUIViewWndClassName')
ret.print_control_identifiers()
从这里就开始打印数据,如果在往下用获取 DUIViewWndClassName 下面的窗口,就会报错说找不到元素了,但 inspect 上确实显示这些元素了