python简易自动化之pyautogui 2020-12-19

学习自动化,参考网上介绍,测试了一下,效果很好。记录如下。

  1. pip install pyautogui 安装pyautogui模块,这是图片识别模块。更多帮助请参阅: https://github.com/asweigart/pyautogui/pyautogui帮助文档
  2. 使用python进行编程,基本原理是自动识别软件界面,然后根据截取的图片进行自动识别坐标位置,传入鼠标信息或者键盘信息。
  3. 代码如下:
import pyautogui
import time#import cv2 #opencv-python
'''
1.需要点击得图片到当前目录下。确保图片颜色背景等都相同.最好设置为黑色背景!!!!!!!!!!
2. 计算器切换到标准模式下,因为所有图片都是在标准模式下得到得。
3. 运行程序。
4.需要退出时,切换屏幕到另一个截面并保持,选择设置control文件为end=1,保存后在
#循环结束时自动退出。
'''
time.sleep(1)# Windows计算器的按钮截图
path='.\\calc\\'
five = path+'5.png'
eight = path+'8.png'
eight_program=path+'8p.png'
four_program=path+'4p.png'
two_program=path+'2p.png'
one_program=path+'1p.png'
zero_program=path+'0p.png'multiply = path+'multiply.png'
equals = path+'equals.png'
menu = path+'menu.png'
biaozhun = path+'biaozhun.png'
kexue = path+'kexue.png'
kexuekexue=path+'kexuekexue.png'
chengxuyuan=path+'chengxuyuan.png'
hexH=path+'hex.png'
binB=path+'bin.png'
dec=path+'dec.png'
blank=path+'blank.png'
#backspace
bs = path+'bs.png'
ce = path+'ce.png'#ce
# 图片识别和点击的函数
confidenceValue=0.9
def find_and_click(image):#print(pyautogui.locateCenterOnScreen(image, confidence=confidenceValue))x=0;y=0  try:x,y= pyautogui.locateCenterOnScreen(image, confidence=0.8)except Exception as e:print(e)return 1;if(x>0 and y>0):ss="x={0}\ty={1}".format(x,y,x)print(ss)elif(x=='None' or y=='None'):print(x)return 1;#传入单击动作pyautogui.click(x, y)return sstry:#移动到空白位置x,y= pyautogui.locateCenterOnScreen(blank, confidence=0.75)except Exception as e:print(e)return 1;def doCalc():delay=0.1find_and_click(menu)time.sleep(delay)find_and_click(biaozhun)time.sleep(delay)# 执行5*8=five1=path+'6.png'#find_and_click(five1)find_and_click(ce)find_and_click(five)find_and_click(multiply)find_and_click(eight)#pyautogui.click(path+'8.png') #直接判断图片单击find_and_click(multiply)#pyautogui.click(path+'8.png') #直接判断图片单击find_and_click(eight)find_and_click(multiply)find_and_click(eight)find_and_click(multiply)find_and_click(five)#pyautogui.click(path+'5.png') #直接判断图片单击find_and_click(multiply)find_and_click(eight)find_and_click(equals)print("菜单测试")find_and_click(menu)time.sleep(delay)find_and_click(biaozhun)time.sleep(delay)find_and_click(menu)time.sleep(delay)find_and_click(kexue)#科学time.sleep(delay)print('科学》程序员')find_and_click(menu)time.sleep(delay)    find_and_click(chengxuyuan) #程序员time.sleep(delay)find_and_click(eight_program)find_and_click(four_program)find_and_click(two_program)find_and_click(one_program)#find_and_click(zero_program)time.sleep(delay)find_and_click(hexH)time.sleep(delay)find_and_click(dec)find_and_click(one_program)find_and_click(two_program)time.sleep(delay)find_and_click(eight_program)time.sleep(delay)find_and_click(hexH)time.sleep(delay)find_and_click(binB)find_and_click(dec)print("测试88888")#find_and_click(path+"delete.png") #直接判断图片单击find_and_click(menu)time.sleep(delay)find_and_click(biaozhun)time.sleep(delay)find_and_click(eight)find_and_click(eight)find_and_click(eight)find_and_click(eight)find_and_click(eight)print("退格键")time.sleep(delay)find_and_click(bs)find_and_click(bs)'''
'''
def test():delay=0.1print("菜单测试")find_and_click(menu)print('科学》程序员')find_and_click(kexue)time.sleep(delay)find_and_click(menu)find_and_click(chengxuyuan) #程序员time.sleep(delay)find_and_click(eight_program)time.sleep(delay)find_and_click(hexH)time.sleep(delay)find_and_click(eight)time.sleep(delay)time.sleep(delay)find_and_click(hexH)time.sleep(delay)find_and_click(binB)find_and_click(dec)print("清除计算历史")find_and_click(path+"delete.png") #直接判断图片单击if __name__ == "__main__":i=0;j=0loopNumber=100while(j<10 and i<loopNumber):doCalc();#test()ss="第{0}次循环。i={1}\tj={2}".format(i+1,i,j)print(ss)i+=1if(i==loopNumber):i=0j+=1with open('./calc/control.txt') as control:ctl=control.readline().strip()ss="是否结束自动计算循环?=1则结束。 end={}".format(ctl)print(ss)if(ctl=='end=1'):break

计算器截图后截取需要的按键图片,保存在相对路径./calc/下:
































以上重复的图片,是在计算器的标准模式和科学/程序员模式下分别截图,各自是有很大区别的。务必注意。
5. 详细说明参见代码中内容。
6. `运行中的效果图片:

  1. 可是使用其它程序,修改control文件的end=0为end=1来结束程序(一个循环结束后自动结束)
  2. 扩展应用:对于简单重复的工作,可以使用这个办法自动执行,从而解放人类。
  3. 是不是说,人类的进步,都是懒人推动的?因为只有他们才会想出需要使用便捷的方法去解决问题。

python简易自动化之pyautogui 2020-12-19相关推荐

  1. Python GUI自动化神器pyautogui,精准识别图片并自动点赞(32)

    小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生. 欢迎和猫妹一起,趣味学Python. 今日主题 你听过GUI自动化吗? GUI自动化就是用软件模拟鼠标和键盘的操作. 提到Pyt ...

  2. python实现自动化(pyautogui全面总结)

    库的安装 这里需要python的pautogui库 PyAutoGUI依赖于pyscreeze.pymsgbox.pytweening,上述命令会自动安装这3个库.安装完成后可以发现,在site-pa ...

  3. 2020.12.19【NOIP提高B组】模拟 总结

    文章目录 前言 总结 T1 Description 题解 代码 T2 Description 题解 T3 Description 题解 代码 T4 Description 题解 代码 前言 这是一个正 ...

  4. Java官方教程(三-2)赋值 运算和一元运算符(2020.12.19)

    前言 本文是橙子出于兴趣爱好对Java官方教程的尝试翻译,几乎每日更新,感兴趣的朋友可以关注一下橙子:翻译过程中尽可能多的对一些关键词保留了英文原文,如果你想看最纯正的英文原版教材却又看不懂,可以试着 ...

  5. 蚂蚁森林合种计划(2020.12.19更新,7天有效)

    种树,让地球更美丽.更健康 宏基因组蚂蚁森林公益合种团队.现诚招队友,带你3000~5000g能量种10~20万能量大树,每天浇水一千,每种树循环种.热爱种树.保证支付宝每天10点前浇水1000g,无 ...

  6. python自动化库_Python操作自动化库PyAutoGUI的方法

    Python操作自动化库PyAutoGUI的方法 发布时间:2020-07-23 17:24:46 来源:亿速云 阅读:73 作者:小猪 这篇文章主要讲解了Python操作自动化库PyAutoGUI的 ...

  7. 基于python+uiautomator2,2020.12月最新库的使用方法,更新watcher使用方法

    uiautomator2 此库基于2020.12更新版本 这里有一份快速参考,适合已经入门的人 import uiautomator2 as u2d = u2.connect("--seri ...

  8. 312戳气球——力扣算法系列2020.07.19 Python

    第25天 2020.07.19 周日 难度系数:困难 题目:有n个气球,编号为0到n-1,每个气球上都标有一个数字,这些数字存在数组nums中. 现在要求你戳破所有的气球.如果你戳破气球i,就可以获得 ...

  9. web python selenium自动化面试题_干货分享 | Selenium 自动化测试相关的面试题

    网上收集到的一些有关Selenium自动化相关的面试,给出的答案仅供参考. 1.Selenium中用什么函数判断元素是否存在? isElementPresent 2.Selenium中hidden或者 ...

最新文章

  1. 2月中国域名总量平稳回升 净增长量逾10.3万个
  2. 洞悉物联网发展1000问之从精益管理到互联工业带来的启示是什么?
  3. ceph monitor----paxos算法1
  4. 生物岛实验室闵明玮课题组诚聘副研究员/博士后/科研助理/实习生
  5. 【Solidity】3.类型 - 深入理解Solidity
  6. [渝粤教育] 西南科技大学 计算机工业控制 在线考试复习资料
  7. 【干货】mysql查询重复数据sql
  8. zip4j -- Java处理zip压缩文件
  9. pat乙级相当于什么水平_曼彻斯特大学相当于国内什么水平的大学?
  10. 自定义Dialog宽度占满屏幕
  11. 大数据分析要避免哪些错误
  12. 第九篇 IO流技术(九)
  13. 团队编程项目作业4-开发文档
  14. Scrum立会报告+燃尽图(十月二十三日总第十四次)
  15. Zsh安装及常用操作
  16. root 红米note5_小米红米Note 5(不要降级刷低版本)手机完美获取root教程,最强root工具,亲测可用!...
  17. ecshop mysql 操作_ecshop数据库操作函数
  18. Oracle VM VirtualBox 从虚拟软盘加载系统
  19. 安全生产施工单位材料准备清单
  20. newman工具的运用

热门文章

  1. 〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建
  2. PyMQL简单使用【入门CRUD】
  3. Onvif协议客户端开发(8)--球机云台的控制
  4. 为什么计算机日期最早1970,计算机时间基准——1970.1.1
  5. 关于activeMq在本地测试报错org.apache.activemq.transport.InactivityIOException: Cannot send, channel has alrea
  6. 什么牌子的蓝牙耳机耐用?2023年最值得入手的蓝牙耳机分享
  7. Apple Developer会员注册以及续订“支付授权失败...”问题
  8. Spring Cloud 五大组件
  9. 翻译Computer Relaying for Power Systems-2nd Edition(Arun G. Phadke, James S. Thorp)
  10. 怎样共享苹果Mac上的 Wi-Fi 密码?