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}”)。