pywinautojava_Pywinauto使⽤⽅法(⽰例代码)3 Pywinauto使⽤
连接为
pywinauto.github.io/
3.1 关联到⼀个应⽤,⽤以下⽅法:
start_(path)
connect_(handleor processID)
以下是⽰例代码
app = Application()
app.start_(“”)
notepad++<")
3.2 调⽤⼀个窗体
当初始化app后,可以通过模糊匹配的⽅式操作该app中的⼀个窗体,变量名可以是该窗体标题的部分或全部
dlg = app.window_(title_re = ".*Part of Title.*")
dlg = app.PartOfTitle
例如,对⼀个写字板app应⽤中的窗⼝,在英⽂操作系统中,其标题是“untitled - Notepad”
可以使⽤以下两种⽅式调⽤该窗体
app.Untitled
app.Notepad
对于关于窗⼝,其标题是“About Notepad”
可以使⽤以下名称调⽤该窗体
app.AboutNotepad
3.3 调⽤⼀个控件
Pywinauto使⽤以下顺序定位⼀个控件
1: 控件的标题,即title
2:控件的类名,即friendly class
3:控件的标题加类名,即title + friendly class
对于“关于”窗⼝的中按钮,可以使⽤以下任意⼀种⽅式调⽤
app.AboutNotepad.OK
app.AboutNotepad.Button1
app.AboutNotepad.OKButton
如果在写字板中输⼊⽂字,执⾏退出时会 弹出询问窗⼝,对于其中的“不保存按钮”,其英⽂标题是Don’t Save,按照上⾯的规律,可以使⽤以下任意⼀⽅式调⽤该按钮,即
app.Notepad.DontSave
app.Notepad.DoSave
app.Notepad.DotSave
以上⽆论DontSave、DoSave、DotSave都是标题Dont’ Save的⼀部分,pywinauto都可以通过模糊匹配的⽅式到该按钮。
3.4 控件的基本操作
如下:
Control.Click()#点击
Control.MenuSelect()#菜单选择
Control.PressMouse/MoveMouse/ReleaseMouse()#按、移动、释放⿏标
Control.TypeKeys()#键⼊字符
其中TypeKeys()⽀持组合键,例如
Ctrl: ^
Alt: %
Shift: +
以下是其常见属性的读取:
ControlID()
FriendlyClassName()
WindowText()
Rectangle()
IsEnabled()
IsVisible()
如果想了解详细,可以查看pywinauto的官⽅⽂档,其链接是
在该⽹页⾥,最上⽅是所有控件的基本操作和属性读取,下⾯依次是每个控件独有的操作,在实际的编程中,如果想知道某个控件的某个操作,可以通过⽂档查询。
4 其它说明
4.1 和PyUnit集成
只要代码书写符合PyUnit的要求,可以很容易的让pywinauto所测试的win32应⽤和PyUnit集成。
4.2 和Selenium集成
Selenium⽀持Python语⾔,因此,很容易让pywinauto与selenium。
在⼀些测试场景中,需要运⾏完某个win32应⽤后,⽴刻在web应⽤程序中查看结果,也就是说,⼀个测试同时要⾯对win32和web两种应⽤,可以⽤python+pywinauto+selenium组合的⽅式实现。
4.3 代码结构
有兴趣的⽹友,还可以阅读其源代码,主要的⼏个程序是
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论