py -m pip install pyautogui
打印屏幕位置
>>> pyautogui.size()
(1920, 1080)
打印屏幕位置
>>> pyautogui.size()
(1920, 1080)
判断屏幕是否有该位置
>>> pyautogui.onScreen(1920, 1080)
False
您可以调用 locateOnScreen ()函数来获取屏幕坐标。返回值是4个整数的tuple: (左、上、宽、高)。这个元组可以传递给 center () ,以获得该区域中心的 X 和 Y 坐标。如果在屏幕上找不到图像,locateOnScreen ()会引发 ImageNotFoundException。
>>> import pyautogui
>>> button7location = pyautogui.locateOnScreen('calc7key.png') # calc7key.png 是图片的存储位置
>>> button7location
Box(left=1416, top=562, width=50, height=41) #left,top图片的坐标x,y该位置并非图片中心位置而是左上角;width,height图片的长,宽
>>> button7location[0]
1416
>>> button7location.left
1416
>>> button7point = pyautogui.center(button7location)
>>> button7point
Point(x=1441, y=582) #获取图片位置中心坐标
>>> button7point[0]
1441
>>> button7point.x
1441
>>> button7x, button7y = button7point #返回图片中心坐标x,y
>>> pyautogui.click(button7x, button7y) #单击7按钮所在位置的中心
>>> pyautogui.click('calc7key.png') #一个快捷的版本,点击中心的7按钮被发现
#移动鼠标到X的100,Y的200。
>>> pyautogui.moveTo(100, 200)
# 2秒内移动鼠标到X (100) Y (200)
>>> pyautogui.moveTo(100, 200, 2)
# 将鼠标向下移动50像素。
>>> pyautogui.move(0, 50)
# 将鼠标向左移动30像素。
>>> pyautogui.move(-30, 0)
#拖动 dragTo()
# 拖动鼠标X到100,Y到200,同时按住鼠标左键
>>> pyautogui.dragTo(100, 200, button='left')
# 按住鼠标左键,在2秒内将鼠标拖动到X的300处,Y的400处
>>> pyautogui.dragTo(300, 400, 2, button='left')
# 按住鼠标右键,在2秒内将鼠标向左拖动30像素
>>> pyautogui.drag(30, 0, 2, button='right')
#设置移动速度 pyautogui
# 慢慢开始,快速结束
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad)
# 开始快,结束慢
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)
# 开始和结束快,中间慢
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad)
# 最后跳起来
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce)
# 最后绑上橡皮筋
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic)
# 点击鼠标
>>> pyautogui.click()
# 移动到100,200,然后单击鼠标左键
>>> pyautogui.click(x=100, y=200)
# 鼠标右键双击
>>> pyautogui.click(button='right')
# 双击鼠标左键
>>> pyautogui.click(clicks=2)
# 双击鼠标左键,但在单击之间有0.25秒的暂停
>>> pyautogui.click(clicks=2, interval=0.25)
# 三次点击鼠标右键,在点击之间有0.25秒的停顿
>>> pyautogui.click(button='right', clicks=3, interval=0.25)
#执行左键双击
>>> pyautogui.doubleClick()
>>> pyautogui.scroll(10) # 向上滚动10“点击”
>>> pyautogui.scroll(-10) # 向下滚动10个“点击”
#移动鼠标光标到100,200,然后向上滚动10 "点击"
>>> pyautogui.scroll(10, x=100, y=100)
>>> pyautogui.write('Hello world!') # 立即打印出“你好,世界!
>>> pyautogui.write('Hello world!', interval=0.25) # 打印出“Hello world!”,每个字符后面有0.25秒的延迟
>>> pyautogui.keyDown('shift') # 按下shift键
>>> pyautogui.keyUp('shift') # 松开shift键
#下面代码如同上面一样的效果,press()同时执行按下松开
>>> pyautogui.press('shift') # 按左箭头键
>>> pyautogui.press('enter') # 按下Enter
>>> pyautogui.press('f1') # 按下 F1
>>> pyautogui.press('left') # 按下 left
#或者你可以设置按下次数:
>>> pyautogui.press('left', presses=3)
>>> with pyautogui.hold('shift'):
pyautogui.press(['left', 'left', 'left'])
#如同下面代码
>>> pyautogui.keyDown('shift') # 按住shift键
>>> pyautogui.press('left') # 按左箭头键
>>> pyautogui.press('left') # 按左箭头键
>>> pyautogui.press('left') # 按左箭头键
>>> pyautogui.keyUp('shift') # 松开shift键
# 确定”按钮的简单消息框。返回单击的按钮的文本。
>>> alert(text='', title='', button='OK')
# 显示带有文本输入的消息框以及“确定”和“取消”按钮。返回输入的文本
>>> confirm(text='', title='', buttons=['OK', 'Cancel'])
#显示带有文本输入的消息框以及“确定”和“取消”按钮。键入的字符显示为 * 。返回输入的文本,如果单击“取消”则返回“无”。
>>> password(text='', title='', default='', mask='*')
>>> im2 = pyautogui.screenshot('my_screenshot.png') #得到图片的位置
#截图取左边、顶部为原点,宽度和高度的区域 region=(左边、顶部,宽度,高度)
>>> im = pyautogui.screenshot(region=(0,0, 300, 400))