dlg.Edit.type_keys("活着挺好。hello World!")
输出:
<win32_controls.EditWrapper - '活着挺好。helloWorld!', Edit, 459764>
当运行上述代码时,文字立刻会显示在记事本内,但我们注意到辅助卡盟,对于空格,并没有处理,这里需要将空格这样来写:
dlg.Edit.type_keys("活着挺好。hello{SPACE}World!")
输出:
'活着挺好。hello World!' , Edit, 459764>
这样一来就可以解决问题,不过在最新版的pywinauto中,type_keys增加了一些参数来指定空格输入,比如可以这样:
dlg.Edit.type_keys("活着挺好。hello World!", with_spaces=True)
输出:
'活着挺好。hello World!' , Edit, 459764>
但还有一点需要注意,如果在记事本打开时按键精灵键盘脚本,输入法默认是中文输入,那么有可能英文字母会被拦截,如下图:
这时要将输入法切换回英文状态,之所以出现这个情况是因为我这边安装的输入法是外挂式五笔输入法,它劫持了英文的输入。这一点在输入时,要注意。键盘和鼠标有时候,程序无法捕捉到控件,我们可以用键盘和鼠标来聚焦后,再发送文本,注意,这时发送是用keyboard来执行的send_keys命令,代码如下:
dlg.set_focus()
keyboard.send_keys("活着挺好。hello World!", with_spaces=True)
上述代码的执行就相当于电脑前的用户用鼠标点击窗体,再敲击键盘。
在前面我们已经介绍过控件的坐标问题,所以当想点击窗体某个区域时,可以用坐标来表示:
dlg.set_focus()
mouse.click(coords = (1000,80))
当运行上述代码时按键精灵键盘脚本,会看到窗体一闪,即意味着鼠标点击了窗体一下。捕捉图象捕捉图象是很方便的,下面给出一个演示:
dlg = app['无标题 - 记事本']
dlg.set_focus()
img1 = dlg.capture_as_image()
img1.save("1.png")
截图如下:
要注意,这段代码是基于本程序中的位置和长宽将程序中涉及到的窗体捕捉下来,但有可能包含其它窗体一些部分。为了解决这个问题,我们可以重新获取一下dlg即可。
小结本文对pywinauto这个python的第三方模块进行了简介,同学们可以看到使用该模块进行一些特定条件下的鼠标和键盘模拟是非常有用的,熟练掌握该模块,有助于我们工作效率的提升。
来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!