pywinauto界面操作常用方法

 1.窗口对象中内置方法,打印窗体内所有元素控件

# 方式一: 窗体对象 .print_control_identifiers()

# 方式二 窗体对象.dump_tree()

2.控件的相关属性获取

1、获取控件类型:wrapper_object()
2、获取该控件支持的方法:print(dir(a.wrapper_object()))
3、获取控件的子元素:children
4、获取控件类名:classname
5、以字典形式返回控件的属性:get_properties

3.键盘修饰符(模拟快捷键)

send_keys("{VK_LWIN}")

ESC键VK_ESCAPE (27)                            回车键:VK_RETURN (13)
TAB键:VK_TAB (9)                                   Caps Lock键:VK_CAPITAL (20)
Shift键:VK_SHIFT (16)                             Ctrl键:VK_CONTROL (17)
Alt键:VK_MENU (18)                               空格键:VK_SPACE (32)
退格键:VK_BACK (8)                               鼠标右键快捷键:VK_APPS (93)
左徽标键:VK_LWIN (91)                           右徽标键:VK_RWIN (92)
Insert键:VK_INSERT (45)                         Home键:VK_HOME (36)
Page Up:VK_PRIOR (33)                         PageDown:VK_NEXT (34)
End键:VK_END (35)                                 Delete键:VK_DELETE (46)
方向键(←):VK_LEFT (37)                          方向键(↑):VK_UP (38)
方向键(→):VK_RIGHT (39)                       方向键(↓):VK_DOWN (40)
F1键:VK_F1 (112)                  ...                 F12键:VK_F12 (123)
Num Lock键:VK_NUMLOCK (144)
小键盘0:VK_NUMPAD0 (96)         ...       小键盘9:VK_NUMPAD9 (105)
小键盘。:VK_DECIMAL (110)                  小键盘-:VK_SUBTRACT (109)
小键盘/:VK_DIVIDE (111)                        小键盘+:VK_ADD (107)
小键盘*:VK_MULTIPLY (106)
Pause Break键:VK_PAUSE (19)              Scroll Lock键:VK_SCROLL (145)

4.通过获取控件坐标进行鼠标点击

control = dlg["TTreeview"].child_window(title,"测试", control_type."TreeItem")
rect = control .rectangle().mid_point()
print(rect.x,rect.y)
mouse,double_click(coords=(rect.x,rect.y))

5.从文件夹选择添加文件

def fileSelect():
    app = pywinauto.Desktop()
    selectDig=app["打开"]
    selectDig.print_control_identifiers()
    selectDig["Toolbar3"].click()
    send_keys("C:\\Users\admin\PycharmProjects\pythonProject\\venv")
    send_keys("{VK_RETURN}")
    selectDig['文件名(&N):Edit'].click()
    send_keys("pyvenv.cfg")
    send_keys("{VK_RETURN}")
    selectDig['打开(&O)Button'].click()

6.控件常用操作

.is_dialog():弹窗判断;
.dump_tree(depth=None, filename=None):跟上文中的 print_control_identifiers()一样。
.scroll(direction,amount,count=1):滚动,direction指定方向:up、down、left、right;amount 滚动行/页:line、page;count:滚动次数。
.capture_as_image().save():将控件截图,并保存;
.rectangle():获取控件上下左右的坐标;通过 .top、.bottom、.left、.right可以获取某一个具体值。而 .mid_point() 可以得到控件中心点位置;
.exists(timeout=None,retry_interval=None):判断控件是否存在,这个经常用到,有些程序的执行会比弹窗渲染快,导致无法获取到控件信息,所以先判断一下再操作。
.children_texts():所有子控件文字列表;
.set_text():输入文字;
.click():点击;
.click_input():点击,移动鼠标光标并执行真正的点击;
.texts():获取文本内容,就是 Static 部分内容;
.type_keys(keys,pause=None,with_spaces=False):键盘输入,底层还是调用 keyboard.send_keys;
–keys:要输入的内容;
–pause:每输入一个字符后要等待的时间,默认是 0.01;有些程序有安全校验,输入太快,系统判断非人为,此时,这里可以控制输入的速度;
–with_spaces:是否保留 kyes 中的所有空格,默认是去除的;
–也可以输入快捷按键,shift 用+表示,crtl 用 ^ 表示,alt 用 %表示;例如:输入 alt + t +p,可以写成 type_keys(“%TP”)。
–还可以输入一下特殊按键,比如:空格、退格,type_keys(“{SPACE}”)、type_keys(“{BACKSPACE}”)。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值