#pyautogui & pyperclip# 基于pyautogui & pyperclip的UI 自动
2023-01-12 12:21:36 来源:程序员客栈
“文章所涉及内容更多来自网络,在此声明,并感谢知识的贡献者!”
(资料图)
pyautogui—PyAutoGUI简介:
pyautogui最方便的地方就是,你不需要去用代码定位元素,你只需要用截图就行,例如你要识别桌面上某个应用,你只需要截图这个应用,然后通过这个截图和当前桌面对比即可找到图标的位置
pyautogui官网:
https://pyautogui.readthedocs.io/en/latest/
pyautogui组件:
鼠标、键盘、对话框、屏幕
Pyautogui教程:
import pyautogui as auto
import pyperclip
import time
#获取屏幕大小
screen_width,screen_height=auto.size()
#获取鼠标位置(X,Y)
mouse_x,mouse_y=auto.position()
#根据坐标系移动鼠标
auto.moveTo(100,150)
#点击鼠标
auto.click()
#根据坐标系点击鼠标
auto.click(100,150)
#寻找屏幕上的图片并进行点击
auto.click("button.png")
#根据像素移动
auto.move(400,0)
#双击鼠标
auto.doubleClick()
#点击ESC键
auto.press("esc")
#按下shift键的同时,连按左键四下
with auto.hold("shift"):
auto.press(["left","left","left","left"])
#按下快捷键
auto.hotkey("ctrl","c")
#弹出窗口
auto.alert("This is the message todisplay.")
#模拟键盘输入
pyautogui.write("Hello world!",interval=0.25)
#按压鼠标拖拽
while distance > 0:
pyautogui.drag(distance, 0, duration=0.5) # move right
distance -= 5
pyautogui.drag(0, distance, duration=0.5) # move down
pyautogui.drag(-distance, 0, duration=0.5) # move left
distance -= 5
pyautogui.drag(0,-distance, duration=0.5) # move up
pyautogui 前置操作—
自动防故障功能
# 默认这项功能为True, 这项功能意味着:当鼠标的指针在屏幕的最左上方,程序会报错;目的是为了防止程序无法停止
pyautogui.FAILSAFE =False
停顿功能
# 意味着所有pyautogui的指令都要暂停一秒;其他指令不会停顿;这样做,可以防止键盘鼠标操作太快;
pyautogui.PAUSE = 1
pyautogui 鼠标操作—
获取屏幕分辨率
print(pyautogui.size()) # 返回所用显示器的分辨率;输出:Size(width=1920,height=1080)
width,height = pyautogui.size()
print(width,height) # 1920 1080
移动到指定位置
# 将鼠标移动到指定的坐标;duration的作用是设置移动时间,所有的gui函数都有这个参数,而且都是可选参数;
# 向右移动100px,向下移动500px, 这个过程持续 1 秒钟;
pyautogui.moveTo(100,300,duration=1)
获取鼠标位置
print(pyautogui.position()) # 得到当前鼠标位置;输出:Point(x=200,y=800)
鼠标单击
# 点击鼠标
pyautogui.click(10,10) # 鼠标点击指定位置,默认左键
pyautogui.click(10,10,button="left") # 单击左键
pyautogui.click(1000,300,button="right") # 单击右键
pyautogui.click(1000,300,button="middle") # 单击中间
鼠标双击
pyautogui.doubleClick(10,10) # 指定位置,双击左键
pyautogui.rightClick(10,10) # 指定位置,双击右键
pyautogui.middleClick(10,10) # 指定位置,双击中键
鼠标点击与释放
pyautogui.mouseDown() # 鼠标按下
pyautogui.mouseUp() # 鼠标释放
鼠标控制拖动事件
# 拖动到指定位置
# 将鼠标拖动到指定的坐标;duration的作用是设置移动时间,所有的gui函数都有这个参数,而且都是可选参数
pyautogui.dragTo(100,300,duration=1)
# 按方向拖动
# 向右拖动100px,向下拖动500px, 这个过程持续 1 秒钟
pyautogui.dragRel(100,500,duration=4) # 第一个参数是左右移动像素值,第二个是上下
鼠标滚轮
# 控制鼠标滚动的函数是scroll(),传入一个整数的参数,说明向上或向下滚动多少个单位;单位根据操作系统不同而不同
pyautogui.scroll(300) # 向下滚动300个单位;
pyautogui 键盘操作—
键盘输入函数
-pyautogui.keyDown() :模拟按键按下;
-pyautogui.keyUp() :模拟按键释放;
-pyautogui.press() :# 就是调用keyDown() & keyUp(),模拟一次按键;
-pyautogui.typewrite("this",0.5) :第一参数是输入内容,第二个参数是每个字符间的间隔时间;
-pyautogui.typewrite(["T","h","i","s"]):typewrite 还可以传入单字母的列表;
键盘事件
pyautogui.keyDown("shift") # 按下shift
pyautogui.press("4") # 按下 4
pyautogui.keyUp("shift") # 释放 shift
缓慢输出
pyautogui.typewrite("$*……%……¥", 0.5)
键盘特殊顺序输出
pyautogui.typewrite(["T","i","s","left","left","h",]) # 输出:This
特殊按键说明
键盘字符串 说明
enter(或return 或 \n) 回车
esc ESC键
shiftleft, shiftright 左右SHIFT键
altleft, altright 左右ALT键
ctrlleft, ctrlright 左右CTRL键
tab (\t) TAB键
backspace, delete BACKSPACE 、DELETE键
pageup, pagedown PAGE UP 和 PAGE DOWN键
home, end HOME和 END键
up, down, left,right 箭头键
f1, f2, f3…. f12 F1…….F12键
volumemute, volumedown,volumeup 声音变大变小静音(有些键盘没有)
pause PAUSE键,暂停键
capslock CAPSLOCK 键
numlock NUMLOCK 键
scrolllock SCROLLLOCK键
insert INSERT键
printscreen PRINT SCREEN键
winleft, winright Win键(windows )
command command键(Mac OS X )
option option(Mac OS X)
快捷键
pyautogui.hotkey("ctrl","c")
pyautogui 屏幕操作—
获取屏幕分辨率
print(pyautogui.size()) # 返回所用显示器的分辨率;输出:Size(width=1920,height=1080)
width,height = pyautogui.size()
print(width,height) # 1920 1080
屏幕截图
pyautogui 提供了一个方法screenshot(),可以返回一个Pillow的image对象
im = pyautogui.screenshot() # 返回屏幕的截图,是一个Pillow的image对象
im.getpixel((500, 500)) # 返回im对象上,(500,500)这一点像素的颜色,是一个RGB元组
pyautogui.pixelMatchesColor(500,500,(12,120,400))# 是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;
im = pyautogui.screenshot() # 返回屏幕的截图,是一个Pillow的image对象
im.getpixel((500, 500)) # 返回im对象上,(500,500)这一点像素的颜色,是一个RGB元组
pyautogui.pixelMatchesColor(500,500,(12,120,400))# 是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;
pyautogui 网页登录—
pyautogui 网页登录
https://blog.csdn.net/m0_56238419/article/details/127697645
pyperclip—
pyperclip简介:
1. 可以复制剪贴板内容
2. 可以向剪贴板写入内容
Pyperclip教程:
import pyperclip
# 将文本复制到剪贴板
pyperclip.copy("哈喽")
# 从剪贴板粘贴文本
pyperclip.paste()
# 剪贴板上有非空字符串时返回字符串
import pyperclip
a = pyperclip.waitForPaste(5)
print(a)
# 剪贴板上有文本被更改时传返回值
pyperclip.copy("original text")
a = pyperclip.waitForNewPaste(5)
print(a)
参考资料—
参考资料
https://www.jb51.net/article/209694.htm
https://zhuanlan.zhihu.com/p/410967443
https://www.jb51.net/article/251803.htm
https://www.cnblogs.com/yuruhao/p/14634401.html
http://www.yuyanba.com/default.aspx/did92862
https://blog.csdn.net/pythonuser1/article/details/125986205
https://blog.csdn.net/weixin_45122104/article/details/125957915
http://t.zoukankan.com/LM791605490-p-10245807.html
为你推荐
-
#pyautogui & pyperclip# 基于pyautogui & pyperclip的UI 自动
-
天天观速讯丨湖人消息:威少转型成功,优质锋线加盟在即,浓眉复出时间出炉
-
我国科学家构建出新型人工碳晶体_全球热点评
-
成都烟花爆竹举报电话2023_热文
-
天天播报:女排名将姚迪将加盟意大利斯坎迪奇队
-
焦点要闻:2023北京门城湖冰场预约购票方式有哪些?
-
世行警告全球增长正急剧放缓,预计2023年全球增长降至1.7%
-
安凯客车: 2023年第一次临时股东大会决议公告-世界最新
-
珠海淇澳红树林团队预约材料+预约流程
-
南京明孝陵景区门票可单独购买吗
-
焦点消息!涨停板复盘:创业板指涨超1.3% 新能源汽车及产业链午后大幅上扬
-
环球快消息!瑞银:维持Fox(FOXA.US)买入评级
-
京东白条贷款逾期50年拖欠多久上征信 天天报道
-
亚洲股市进入技术性牛市 今年有望跑赢全球
-
嗨袋贷款逾期9年还不起会影响征信吗 全球观天下
-
当前信息:招联好期贷贷款逾期2天征信有什么影响
-
【全球独家】相关企业借势热推,消毒家电会成行业新机遇吗?
-
伦纳德:最后半节球我打得不够好,轮到我发挥时没能命中
-
为何《浪姐》排名如此魔幻?原因很明显,不只是500位观众的锅 天天视点
-
全球要闻:全国首辆氨氢燃料电池客车启动
推荐内容
- #pyautogui & pyperclip# 基于pyautogui & pyperclip的UI 自动
- 天天观速讯丨湖人消息:威少转型成功,优质锋线加
- 我国科学家构建出新型人工碳晶体_全球热点评
- 成都烟花爆竹举报电话2023_热文
- 天天播报:女排名将姚迪将加盟意大利斯坎迪奇队
- 焦点要闻:2023北京门城湖冰场预约购票方式有哪些?
- 世行警告全球增长正急剧放缓,预计2023年全球增长
- 安凯客车: 2023年第一次临时股东大会决议公告-世
- 珠海淇澳红树林团队预约材料+预约流程
- 南京明孝陵景区门票可单独购买吗
- 焦点消息!涨停板复盘:创业板指涨超1.3% 新能源
- 环球快消息!瑞银:维持Fox(FOXA.US)买入评级
- 京东白条贷款逾期50年拖欠多久上征信 天天报道
- 亚洲股市进入技术性牛市 今年有望跑赢全球
- 嗨袋贷款逾期9年还不起会影响征信吗 全球观天下
- 当前信息:招联好期贷贷款逾期2天征信有什么影响
- 【全球独家】相关企业借势热推,消毒家电会成行业
- 伦纳德:最后半节球我打得不够好,轮到我发挥时没
- 为何《浪姐》排名如此魔幻?原因很明显,不只是50
- 全球要闻:全国首辆氨氢燃料电池客车启动
- 借呗网贷逾期8个月还不起会上征信吗 重点聚焦
- 外资爆买!两月超1000亿涌入A股!万亿板块迎三大
- 吉星高照逾期五年延迟还款征信会怎么样
- 快资讯:“线上+线下”!来光明享受文艺体育盛宴
- 天天看热讯:滴滴系险企总经理蒋新伟辞任,副总裁
- 行情异动 | 沪镍主力合约大跌超6.00%
- 前沿资讯!2023年1月宁波选考学考考试防疫须知一览
- 知识产权板块1月5日跌0.5%,三湘印象领跌,主力资
- 外资大幅加仓A股 这些个股最受偏爱 世界通讯
- 摩托罗拉moto g53手机今日正式开售:5000mAh大电
- 世界观点:两天来,已有十多位患者从这里出院
- 每日消息!使用Python批量筛选上千个Excel文件中的
- 快看:美克家居累计斥资2477.71万元回购0.57%股份
- 环球精选!打造银行业声誉风险管理交流服务平台
- 青岛:免费送药解病痛 全球今热点
- 网贷逾期113万不还的后果|天天新资讯
- 2023年中国中医科学院眼科医院招聘信息一览(岗位
- 2022年先提出离婚的应当赔偿另一方吗
- 益生股份:目前公司祖代肉种鸡从美国阿拉巴马州引
- 世界消息!过夜的胡萝卜可以吃吗 胡萝卜可以隔夜
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
经济
-
中新网通辽10月18日电 (记者 张林虎)18日,记者从内蒙古自治区通辽市奈曼旗公安局获悉,国家一级保护动物--梅花鹿误入当地村民羊群,
-
中新网杭州10月18日电 (王题题 胡燕婕)云天收夏色,浅秋正渐浓。10月18日,浙江杭州市西湖游船有限公司推出的惠民多站点“西湖环湖游
-
中新网福州10月18日电 (记者 龙敏 王东明)福州市晋安区官方18日晚间通报,18日14时47分,晋安区岳峰镇化工路爱摩轮商业广场项目摩天
-
中新网兰州10月18日电 (闫姣 艾庆龙 吉翔)“红山白土头,黄河向西流。”不少人疑问,天下黄河向东流,为何甘肃永靖县这段黄河却向西
-
中新网北京10月18日电 《清华城市健康设施指数》18日在北京发布。报告成果显示,城市健康设施指数领先城市以中心城市和东部沿海城市