如何使用Python自动化登录客户端,pywinauto确实很强大

      工作中会遇见很多重复性的工作,如何让自己懒一点,可以不用每天去做这些,而是去自动化完成一些市场呢?

        首先,我们需要登录客户端,如plsql、qq、邮箱、钉钉等等,网上百度过很多方法,发现都是已txt文档和录屏软件为例,很难找到适合自己的方法。如何打开我们的客户端呢?其实我们脑海中会有一个很明确的思路。①找到程序目录,打开程序;②输入账号和密码,点击登录;③在系统中操作我们想要的数据。

       实现此工作流程,首推pywinauto+    pyautuogui 来完成我们的需求。

pywinauto

可以点击下方链接访问学习

pywinauto知识点总结  

如果是GUI的程序,用spy++这个微软的小工具来看,从类名前缀能看出是什么编写的程序。

通过spy工具可以定位出登录工具对应的窗口类名,登录窗口等信息,很遗憾的是,本人需要操作的程序无法识别具体输入框信息,只能定位到整个窗体。需通过pyautuogui 来解决定位问题



pyautogui-用gui自动化控制键盘和鼠标

鼠标控制常用命令

import pyautogui

pyautogui.PAUSE = 1 # 每次pyautogui后的等待时间

pyautogui.FAILSAFE = True # 自动防故障功能开启,将鼠标移到屏幕的左上角可停用代码

pyautogui.moveTo(100,200,duration=1) # 移动鼠标到指定位置(绝对位置),duration为移动时间

pyautogui.moveRel(10,20,duration=1) # 移动鼠标到指定位置(相对位置),duration为移动时间

x,y = pyautogui.size() # 获取屏幕的分辨率

x,y = pyautogui.position() # 获取鼠标的位置

pyautogui.mouseDown() # 按下鼠标按键

pyautogui.scroll() # 滚动鼠标

pyautogui.mouseUp() # 释放鼠标按键

pyautogui.click() # 点击鼠标,相当于按下和释放的封装组合

pyautogui.dragTo(100,200,duration=1) # 拖动鼠标到指定位置(绝对位置),duration为移动时间

pyautogui.moveRel(10,20,duration=1) # 拖动鼠标到指定位置(相对位置),duration为移动时间

im = pyautogui.screenshot() # 获取屏幕快照

im.getpixel((100,200)) # 返回坐标处的像素颜色,即RGB(红绿蓝)值

pyautogui.pixelMatchesColor(50,200,(130,135,144)) # 将屏幕上指定的x,y坐标处的像素与指定的颜色匹配

list(pyautogui.locateAllOnScreen('png.png')) # 获取png图片的位置,如果找到多个则默认返回一个list元组,如(643,745,70,29),分别为图像左边的X坐标,顶边的Y坐标,宽度,以及高度

pyautogui.locateOnScreen('png.png') # 获取图片的位置,结果如(643,745,70,29)

pyautogui.center((643,745,70,29)) # 获取中心值,结果如(678,759) 

鼠标控制常用命令

pyautogui.typewrite('Hello World',0.25) # 打印出相应字符串,后面的时间为打印后等待的时间

pyautogui.keyDown() # 按下按键

pyautogui.keyUp() # 释放按键

pyautogui.press() # 点击按键,相当于按下和释放的集合

pyautogui.hotkey('Ctrl','c') # 热键组合,可以接受多个按键字符串参数,顺序按下,再按相反的顺序释放

pyautogui.KEYBOARD_KEYS # 查看PyKeyboard属性值

#显示一个简单的带文字和OK按钮的消息弹窗。用户点击后返回button的文字。

pyautogui.alert(text='', title='', button='OK')  

# OK和Cancel按钮的消息弹窗

pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel'])

# 10个按键0-9的消息弹窗

pyautogui.confirm(text='', title='', buttons=range(10))

用python截图函数,确认坐标位置


几个定位函数。都是从左上角原点开始向右向下搜索截图位置:

locateOnScreen(image,grayscale=False):返回找到的第一个截图Image对象在屏幕上的坐标(left, top, width,height),如果没找到返回None

locateCenterOnScreen(image, grayscale=False):返回找到的第一个截图Image对象在屏幕上的中心坐标(x, y),如果没找到返回None

locateAllOnScreen(image, grayscale=False):返回找到的所有相同截图Image对象在屏幕上的坐标(left, top, width, height)的生成器

locate(needleImage, haystackImage, grayscale=False):返回找到的第一个截图Image对象在haystackImage里面的坐标(left, top,width, height),如果没找到返回None

locateAll(needleImage, haystackImage, grayscale=False):返回找到的所有相同截图Image对象在haystackImage里面的坐标(left, top, width, height)的生成器


eg登录客户端实例

import pyautogui

buttonlocation = pyautogui.locateOnScreen('login.png',grayscale=True)#确认图片坐标位置

print(buttonlocation )

pyautogui.click(buttonlocation )#点击图片位置

pyautogui.typewrite('username',interval=0.25)#输入账号


       是为了记录学习的一个状态,希望大家也在这条道路上越来越棒,目前建了一个扣扣群1095106956,每天都有新的人加入,期待大家的分享与交流,不知道是否是从这个平台进去的,感觉大家的信任,有新的想法的朋友,可以加入,一起探讨!


你可能感兴趣的:(如何使用Python自动化登录客户端,pywinauto确实很强大)