pywinauto

pywinauto :自动化窗体程序
一、工具:Inspect.exe 获取窗体或者控件的属性
首先需要选择UI Automation,选中黄色的小框框把选中的需要定位的区域
pywinauto_第1张图片

Inspect 主要属性定位唯一的元素
ControlType 对应python中例如:control_type

app.window(control_type='Menu',class_name='#32768')

ClassName 对应python中的class_name
Name 对应python 中的title 例如:

password = loginform.child_window(title='用户密码:', class_name='Edit')

Children 查看这个窗体下面还有哪些Childwindow

Ancestors :查看父窗体的,这个父窗体是从上到下是一级一级递进的,例如这个窗体的上一级就是网易有道词典窗体,网易有道词典窗体的上一级就是桌面
Ancestors 很有用,可以通过它找到父窗体,然后定位到自己比如:

loginform=app.window(class_name='SWT_Window0') #定位父窗体
#根据父窗体找到自己
user=loginform.child_window(title='用户名称:', class_name='Edit') 

二. 连接应用与登陆
1) 第一次连接未打开的

from pywinauto import application
app = application.Application('uia').connect(path=MyProfile.app_path)

2) 程序在进程中说明进程没有关闭的,但是没有登陆

app = application.Application("uia").connect(title='有道词典"', timeout=10)

3)输入用户名和密码,点击登陆
文本框输入信息可以通过如下几种方法
(1).定位到这个元素user.type_keys(‘231’)如下:
(2).定位到这个元素user.set_text(‘231’)如下:
(3).如果以上两种方法都不行的化,键盘强制输入
pywinauto.keyboard.send_keys(‘231’) 这种情况不需要定位到具体的文本,
光标落在哪个输入框就输入哪个文本框

  user=loginform.child_window(title='用户名称:', class_name='Edit')
  user.type_keys('231') # 在输入框中输入密码
  password = loginform.child_window(title='用户密码:', class_name='Edit')
  password.type_keys('122') #在输入框中输入密码

你可能感兴趣的:(python)