其他分享
首页 > 其他分享> > pyautowin笔记

pyautowin笔记

作者:互联网

 

 

    Application(backend='uia').start(cmd_line=r"xxx.exe", work_dir=r"xxxApplication") # backend优先使用'uia';拿不到元素,在考虑换'win32'
    app = Application(backend='uia').connect(path="xxx.exe") # 连接exe进程名称
    win = app.window(title_re="CLIP.*")
    win.print_control_identifiers()

  

 

====》 判断程序的backend

法1:使用工具spy++ 
如果是GUI的程序,用spy++这个微软的小工具来看,从类名前缀能看出是什么编写的程序。
a、afx__开头的:mfc写的; 
b、t_开头的:一般是delphi,少部分是c++builder;比如主窗体一般是tMainForm; 
c、thunder_开头的:一般是VB6写的; 
d、windows__开发头的,一般都是.net写的; 
e、awt__或者swing__开头的,一般都是java写的; 
f、其他的直接以win32api gui控件开头的,一般都是c++或者VC++写的。 
法2:使用工具inspect
点击inspect左上角的下拉列表,切换到“UI Automation”,然后鼠标点一下你需要测试的程序窗体,inspect就会显示相关信息。 
inspect中显示了程序的有关信息,说明backend为uia,inspect中显示拒绝访问,说明程序的backend应该是win32

=================================

 

1、有名称,可以直接用 win[name]的方式获取,即 win.print_control_identifiers() 可以打印出来名称的。

2、大多数元素用click_input()即可,不行,尝试用click();【部分元素虽然是表面是wrapper,但实际是btn和checkbox,可以用click()]

3、无名称的元素,可以用父元素的descendents()获取,如dlag_win.descendants(),得到一个list,用index取元素,进行点击 

4、元素查看用 inspect.exe; 下载安装windows sdk里面自带:https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/#sysreq

5、窗口选择

1)、根据窗口标题/类名选择: app["QQ"]

2)根据窗口类名选择 :window = app.TXGuiFoundation

3)获取坐标 :  print(app["QQ"].rectangle())

6 窗口控件基本属性获取方法

1)获取控件类型:wrapper_object()
2)获取控件支持的方法:print(dir(a.wrapper_object()))
3) 获取控件的子元素:children()
4)获取控件类名:class_name()
5)以字典的形式返回控件的属性:get_properties()
【以上全部可以用inspect直接查看获取】

 

7。文本 ele.texts()

8  控件/窗口截图:

ele.capture_as_image()`

 

9 菜单操作:

# 通过下标选择菜单项
menu = window['menu'] print(menu.items())#获取菜单的子菜单项 m = menu.item_by_index(1) print(m)

# 通过路径选择菜单项
menu = window['menu']
print(menu.items())#获取菜单的子菜单项
m = menu.item_by_path("文件->新建连接...")
print(m)

 

10 等待:window.wait(wait_for='ready',timeout=10,retry_inteval=1)

 

 

 

 

 

wait_until(10.5, .5, self.item_count, 10)#等待item_count函数的结果为5的时候开始停止等待。。。若超过10s,则超时报错

 

 




官网: https://pywinauto.readthedocs.io/en/latest/code/pywinauto.application.html?highlight=wait#pywinauto.application.WindowSpecification.wait

参考:https://www.pythonf.cn/read/127079#timings_161

参考:https://www.cnblogs.com/wuxunyan/p/9366178.html

 

 

标签:控件,pyautowin,menu,inspect,笔记,获取,print,backend
来源: https://www.cnblogs.com/banyanisdora/p/15185105.html