输入中文bug没有解决,目前的解决方案是Python 2.X环境下安装pyperclip和pyautogui,用复制粘贴来实现
抱歉,这个没找到合适的安装包,只能通过
pip install PyAutoGUI==0.9.33
进行在线安装
补:已找到下载地址:https://pypi.org/project/PyAutoGUI/#files
实用小工具
#-- coding: utf-8 --
import pyautogui
import time
try:
while True:
x, y = pyautogui.position() #获得鼠标所在位置
print(x,y) #打印当前鼠标所处位置
time.sleep(1)
except KeyboardInterrupt:
print('\nExit.')
必要措施:
Python移动鼠标、点击键盘非常快,鼠标移动中中断脚本执行的方式:
当pyautogui.FAILSAFE = True
时,如果把鼠标光标在屏幕左上角,PyAutoGUI
函数就会产生pyautogui.FailSafeException
异常。如果失控了,需要中断PyAutoGUI
函数,就把鼠标光标在屏幕左上角。要禁用这个特性,就把FAILSAFE
设置成False
:
import pyautogui
pyautogui.FAILSAFE = True
pyautogui.PAUSE = 2.5 通过把pyautogui.PAUSE设置成float或int时间(秒),可以为所有的PyAutoGUI函数增加延迟
鼠标相关函数:
import pyautogui
width, height = pyautogui.size() # 获得屏幕的分辨率
x, y = pyautogui.position() # 获得鼠标所在坐标
pyautogui.moveTo(300, 300, duration=0.25) # 移动鼠标(绝对坐标)
pyautogui.moveRel(100, 0, duration=0.25) # 移动鼠标(相对位置),以当前鼠标位置为基准
pyautogui.click(clicks=2, interval=0.25, x=0, y=0, button='left') # 模拟鼠标点击操作。clicks 点击次数,后面的 interval是间隔 ;x,y 默认为当前坐标,可以不填;button 默认点击左键,可选参数:‘left’, ‘middle’, ‘right’
# click = pyautogui.mouseDown + pyautogui.mouseUp 点击等于封装了按下和弹起,如此可以模拟鼠标
pyautogui.mouseDown(x=moveToX, y=moveToY, button='left') # 鼠标按下
pyautogui.mouseUp(x=moveToX, y=moveToY, button='left') # 鼠标弹起
pyautogui.doubleClick() # 鼠标双击,其实就是执行两次click()函数
pyautogui.rightClick() # 右击
pyautogui.middleClick() # 中击
pyautogui.dragTo() # 拖拽,绝对坐标 参数等同于 moveTo
pyautogui.dragRel() # 拖拽,相对坐标 参数等同于 moveRel
pyautogui.scroll(200) # 滚轮,正值向上滚,负值向下滚
图片相关处理:
感觉该函数里的图片对比的方式有问题,不支持缩放过的图跟原图对比
另一种图片对比方法参考这个里的clickwindows函数 : http://note.youdao.com/noteshare?id=6519ded2dad855194644bdf912ecd7c3&sub=9B593FB109AF4F8BA71F3DB58087B00D
import pyautogui
pyautogui.screenshot('foo.png') # 全屏截图
im = pyautogui.screenshot(region=(0, 0, 300 ,400)) # 区域截图 左上角XY坐标值和宽度、高度传入截取
im.getpixel((50, 200)) # 获得某个坐标的像素,假设返回值是:(30, 132, 153)
pyautogui.pixelMatchesColor(50, 200, (30, 132, 153)) # 判断屏幕坐标的像素是不是等于某个值
pyautogui.locateOnScreen('button.png', grayscale=False) # 找到 button 所在的位置。假设返回 (643, 745, 70, 29),如果不存在返回None
x, y = pyautogui.center((643, 745, 70, 29)) # 获得中心点,没找到会返回None
pyautogui.locateCenterOnScreen('pyautogui/looks.png') # 等价于上面的前两布操作,直接获得截屏幕中心坐标
# pyautogui.onScreen(0, 0) 检测 0,0 点在不在屏幕上,如果在返回true,否则返回false
键盘按键
import pyautogui
pyautogui.typewrite('Hello world!', 0.25) # 输入字符串,可选参数0.25为延时,可设置其他值
pyautogui.typewrite(['enter', 'a', 'b', 'left', 'left', 'X', 'Y'], '0.25') # 输出: XYab
pyautogui.KEYBOARD_KEYS # 按键名称列表
pyautogui.keyDown('f4') # 按下某个键, f4为例
pyautogui.keyUp('f4') # 松开某个键, f4为例
pyautogui.press('f4') # 一次完整的击键,前面两个函数的组合 , f4为例
pyautogui.hotkey('altleft', 'f4') #热键
按键 | 含义 |
---|---|
‘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’…. | F1…….F12键 |
‘volumemute’, ‘volumedown’,‘volumeup’ | 有些键盘没有 |
‘pause’ | PAUSE键 |
‘capslock’, ‘numlock’,‘scrolllock’ | CAPS LOCK, NUM LOCK, 和 SCROLLLOCK 键 |
‘insert’ | INS或INSERT键 |
‘printscreen’ | PRTSC 或 PRINT SCREEN键 |
‘winleft’, ‘winright’ | Win键 |
‘command’ | Mac OS X command键 |
消息弹窗
pyautogui.alert(text='', title='', button='OK') # 显示一个简单的带文字和OK按钮的消息弹窗。用户点击后返回button的文字
pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel']) # 显示一个简单的带文字、OK和Cancel按钮的消息弹窗,用户点击后返回被点击button的文字
pyautogui.confirm(text='', title='', buttons=range(10)) # 支持自定义数字、文字的列表
pyautogui.prompt(text='', title='' , default='') # 可以输入的消息弹窗,带OK和Cancel按钮。用户点击OK按钮返回输入的文字,点击Cancel按钮返回None
pyautogui.password(text='', title='', default='', mask='*') # 样式同prompt(),用于输入密码,消息用*表示
网友评论