python自动化神器:pyautogui

这篇具有很好参考价值的文章主要介绍了python自动化神器:pyautogui。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

详情可访问:pyautogui官网地址,关注本专栏,学习自动发消息给对象


一、pyautogui是什么?

pyautogui是一个Python模块,可以模拟用户在屏幕上的鼠标和键盘操作。它可以自动化鼠标和键盘输入,可以用于各种自动化任务,例如GUI测试、自动化数据输入、自动化游戏玩法等。pyautogui提供了一组函数来控制鼠标和键盘,例如移动鼠标、单击、双击、右键单击、按下和释放键等。它还提供了一些额外的功能,例如捕捉屏幕截图、识别颜色和图像等,以及其他一些实用工具,例如获取屏幕尺寸和鼠标位置。

二、使用步骤

1.安装和引入库

pip install pyautogui
import pyautogui

2.基本操作

(1)鼠标控制

	PyAutoGUI可以模拟鼠标的点击和移动。以下是一些基本操作:
	    moveTo(x, y):将鼠标移动到屏幕上的指定位置。
	    click(x=None, y=None, button='left'):在指定位置单击鼠标左键、右键或中键。
	    doubleClick(x=None, y=None, button='left'):在指定位置双击鼠标左键、右键或中键。
	    rightClick(x=None, y=None):在指定位置单击鼠标右键。
	    middleClick(x=None, y=None):在指定位置单击鼠标中键。
	    dragTo(x, y, duration=0.5):将鼠标拖动到指定位置。'

实例:

import pyautogui

# 将鼠标移动到屏幕中央
pyautogui.moveTo(pyautogui.size()[0]/2, pyautogui.size()[1]/2)

# 在屏幕中央单击鼠标左键
pyautogui.click()

(2)键盘控制

PyAutoGUI还可以模拟键盘的输入。以下是一些基本操作:

typewrite(message, interval=0.1):将字符串输入到键盘,可以设置键入每个字符的时间间隔。
press(key):按下指定的键。
release(key):释放指定的键。
hotekey('ctrl',key)::按下组合键

以下是一个例子,演示如何将“Hello, world!”字符串键入到计算机上:

import pyautogui

# 将“Hello, world!”字符串键入计算机
pyautogui.typewrite('Hello, world!')
# 模拟按下键盘的A键
pyautogui.press('a')

# 模拟释放键盘的A键
pyautogui.release('a')

#组合键
pyautogui.hotkey('ctrl','v')

(3)屏幕截图

PyAutoGUI可以截取屏幕上的图像。以下是一个基本操作:

screenshot():截取屏幕上的图像,并返回PIL图像对象。

以下是一个例子,演示如何截取整个屏幕的图像:

import pyautogui

# 截取整个屏幕
screenshot = pyautogui.screenshot()

# 显示截图
screenshot.show()

也可以截取指定位置尺寸的图片

imag=pyautogui.screenshot(region=(0, 0, 300, 400))#(x,y,w,e)4个点的位置
imag.save('1.png')#保存位置

(4)图片位置识别

PyAutoGUI可以识别图片所在的位置

img_path='location.png'
location=pyautogui.locateOnScreen(img_path)
print(location)

但是很多时候图片识别不到,返回None,这个时候就要对识别参数进行设置
confidence 是一个可选参数,表示搜索图像时所需的置信度或准确度。它是一个介于0到1之间的浮点数,表示函数在搜索图像时所需的匹配准确度。值越高,匹配准确度就越高,但搜索速度可能会变慢。值越低,则匹配准确度可能会降低,但搜索速度会更快。

例如,当设置confidence为0.5时,函数将会搜索与给定图像相匹配的区域,并且只有当置信度大于等于0.5时,函数才会返回该区域的位置。因此,confidence的值可以影响函数的性能和准确性,取决于您所需要的搜索结果的精度和速度。

pyautogui.locateOnScreen(confidence=0.5)

(6) 获取鼠标位置

import pyautogui

# 获取鼠标的当前位置
x, y = pyautogui.position()
print(f"鼠标当前位置:{x}, {y}")

也可以获取图片上鼠标的位置

import pyautogui
import time
def get_mouse_postion():
    time.sleep(5)
    print('开始获取鼠标位置')
    time.sleep(1)
    x, y = pyautogui.position()
    postion = '鼠标坐标带你({},{})'.format(str(x).rjust(4), str(y).rjust(4))
    pix = pyautogui.screenshot().getpixel((x, y))  # 获取鼠标所在屏幕点的RGB颜色
    postion += 'RGB:(' + str(pix[0]).rjust(3) + ',' + str(pix[1]).rjust(3) + ',' + str(pix[2]).rjust(3) + ')'
    print(postion)
    pyautogui.click(x, y)
    print(x,y)
    with open('坐标.csv','a',encoding='utf-8')as f:
        f.write(str(x))
        f.write(',')
        f.write(str(y))
        f.write('\n')
    print('结束')
get_mouse_postion()

(7)其他

保护措施:
python移动鼠标、点击键盘非常快,可能会造成其他可能问题,为了及时中断,PyAutoGUI提供了一个保护措施。当pyautogui.FAILSAFE = True时,把鼠标光标在屏幕左上角,PyAutoGUI函数就会产生pyautogui.FailSafeException异常,中断程序。如果想禁用这个特性,把FAILSAFE设置成False:

import pyautogui
pyautogui.FAILSAFE = False

时间延迟
pyautogui.PAUSE 设置延迟,提供页面反映时间,避免页面还没架加载好久执行

import pyautogui
pyautogui.PAUSE = 2.5

一、模块需要

  • pyautogui
  • pyperclip
pip install pyautogui
pip install pyperclip

pyautogu上篇文章已经详细说明了,但是由于输入格式问题,只能输入英文,所以pyperclip 将文本内容复制到粘贴板,然后用pyautogu进行键盘粘贴操作

txt='I love you'
pyperclip.copy(txt)
pyautogui.hotkey('ctrl','v')

三、自动发消息给对象

1.截图操作

分别截取微信PC的图像,以及微信聊天框中的搜索框图片,如下python 控制软件,自动化,python,python,自动化
python 控制软件,自动化,python,python,自动化
尽量截图小点,分别保存成1.png,2.png

2.python代码

设置配置

pyautogui.PAUSE=1#每次延迟1秒

pyautogui.FAILSAFE=True

wechat_id='jiejieluoguo'#你对象的微信账号

返回主界面

pyautogui.hotkey('win', 'm')

获取微信图标位置并点击

#获取微信图标位置,并点击
location1=pyautogui.locateOnScreen('1.png', confidence=0.7)
print(location1)
pyautogui.doubleClick(location1)

获取搜索框位置,单击输入账号,回车,到聊天界面

location2=pyautogui.locateOnScreen('2.png', confidence=0.7)
print(location2)
pyautogui.doubleClick(pyautogui.center(location1))
pyautogui.typewrite(wechat_id)#写入微信账号
pyautogui.press('enter')#回车

创建一个名为语料的文本,存入你想说的话(可以上网搜一搜相关语录)
python 控制软件,自动化,python,python,自动化
读取语录中的内容

with open('语录','r',encoding='utf-8')as f:
    lists=f.readlines()

然后循环粘贴回车发送

for i in lists:
    i=i.strip()
    pyperclip.copy(i)#复制到剪切板
    pyautogui.hotkey('ctrl','v')#粘贴到输入框,回车
    pyautogui.press('enter')

完整代码``

import pyautogui
import pyperclip

pyautogui.PAUSE=1#每次延迟1秒

pyautogui.FAILSAFE=True

wechat_id='jiejieluoguo'#你女朋友微信账号

pyautogui.hotkey('win', 'm')

#获取微信图标位置,并点击
location1=pyautogui.locateOnScreen('1.png', confidence=0.7)
print(location1)
pyautogui.doubleClick(location1)

location2=pyautogui.locateOnScreen('2.png', confidence=0.7)
print(location2)
pyautogui.doubleClick(location2)
pyautogui.typewrite(wechat_id)#写入微信账号
pyautogui.press('enter')#回车

with open('语录','r',encoding='utf-8')as f:
    lists=f.readlines()

for i in lists:
    i=i.strip()
    pyperclip.copy(i)#复制到剪切板
    pyautogui.hotkey('ctrl','v')#粘贴到输入框,回车
    pyautogui.press('enter')


总结

需要更多了解关于pyautogui知识,可以访问官址https://pyautogui.readthedocs.io/en/latest/

希望大家多多支持,一起努力学习,后续慢慢分享更多新奇有趣的东西文章来源地址https://www.toymoban.com/news/detail-537544.html

到了这里,关于python自动化神器:pyautogui的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 自动化指南(繁琐工作自动化)第二版:二十、使用 GUI 自动化控制键盘和鼠标

    原文:https://automatetheboringstuff.com/2e/chapter20/ 了解用于编辑电子表格、下载文件和启动程序的各种 Python 模块是很有用的,但有时您需要使用的应用没有任何模块。在计算机上实现任务自动化的终极工具是你编写的直接控制键盘和鼠标的程序。这些程序可以通过发送虚拟击键和

    2024年02月09日
    浏览(34)
  • 【playwright】新一代自动化测试神器playwright+python系列课程12_playwright_frame中元素定位

    网页中经常嵌套frame框架,在网页中标签为iframe或frame的元素就是frame框架 如图 或者 在frame框架中的元素时不能直接定位的,selenium处理frame,需要切换到frame中,然后再切换出来,操作比较麻烦,那么playwright对于frame的操作会不会更加简单呢? 答案是肯定的,playwright不需要切

    2024年01月18日
    浏览(26)
  • 【playwright】新一代自动化测试神器playwright+python系列课程22_playwright模拟鼠标操作_悬停_右击_双击

    有些元素,只有你鼠标移动到它那个位置上,他才会展开或者显示一些内容,这时候就要用到hover()操作了。 以个人设置这个下拉菜单,来看一下hover的使用。 项目实践代码 以双击关闭弹出的流程窗口为例,看一下dblclick()使用 项目实践代码 以弹出的右键菜单为例,看一下

    2024年01月18日
    浏览(26)
  • 【软件测试】python+selenium自动化测试

    一、什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最 后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 单元测试 java的单元测试框架是Junit,在这里不再赘述。 接口自动化 接口测试就是

    2023年04月09日
    浏览(51)
  • 自动化神器 Playwright 的 Web 自动化测试解决方案

      1. 主流框架的认识 总结: 由于Selenium在3.x和4.x两个版本的迭代中并没有发生多大的变化,因此Selenium一统天下的地位可能因新框架的出现而变得不那么稳固。 后续的Cypress、TestCafe、Puppeteer被誉为后Selenium时代Web UI自动化的三驾马车。但是由于这三个框架都是基于JavaScript开发

    2024年02月02日
    浏览(45)
  • python控制UI实现桌面微信自动化

    Hello,我是新星博主:小恒不会java 背景 使用  wxpy   或者   itchat   这种第三方库通过Python控制自己的微信号,实现很多自动化操作,用的是微信网页版接口,不过随着微信的发展(信息安全等方面愈加重要,这种不符合官方期望出现的东西,很容易就破产。也由于itchat在

    2024年04月27日
    浏览(30)
  • python控制Windows桌面程序自动化模块uiautomation

    github仓库地址:GitHub - yinkaisheng/Python-UIAutomation-for-Windows: (Donot use 3.7.6,3.8.1):snake:Python 3 wrapper of Microsoft UIAutomation. Support UIAutomation for MFC, WindowsForm, WPF, Modern UI(Metro UI), Qt, IE, Firefox, Chrome ...   uiautomation封装了微软UIAutomation API,支持自动化Win32,MFC,WPF,Modern UI(Metro UI), Qt, IE, F

    2024年02月04日
    浏览(26)
  • python自动化办公--pyautogui控制鼠标和键盘操作

    在公司某些工作场景下,需要大量重复的工作,重复的工作完全可以通过python软件的自动化实现,省时省力。本文分享python自动化办公的利器之一--pyautogui,通过pyautogui可以轻松控制鼠标和键盘操作。 PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和

    2024年02月16日
    浏览(32)
  • python+selenium自动化软件测试 :多线程

    运行多个线程同时运行几个不同的程序类似,但具有以下优点: 进程内共享多线程与主线程相同的数据空间,如果他们是独立的进程,可以共享信息或互相沟通更容易. 线程有时称为轻量级进程,他们并不需要多大的内存开销,他们关心的不是过程便宜. 一个线程都有一个开始

    2024年02月16日
    浏览(38)
  • Windows GUI自动化控制工具之python uiAutomation

    对 Windows GUI进行自动化控制的工具有很多,比如pywinauto、pyautogui、pywin32、Autoit、airtest、UIAutomation等,UI Automation API是微软提供的自动化框架,可在支持 Windows Presentation Foundation (WPF) 的所有操作系统上使用,支持的应用类型更多。本文介绍封装了UI Automation API的Python uiautomatio

    2024年02月13日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包