当前位置: 首页 > 工具软件 > PyAutoGUI > 使用案例 >

PyAutoGUI应用

唐健
2023-12-01

安装

py -m pip install pyautogui

1.位置定位

size()

打印屏幕位置

>>> pyautogui.size()
(1920, 1080)

打印屏幕位置

>>> pyautogui.size()
(1920, 1080)

onScreen()

判断屏幕是否有该位置

>>> 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按钮被发现

2.鼠标操作

移动 moveTo()、move()

 #移动鼠标到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)  

鼠标点击 click(),doubleClick()

# 点击鼠标
>>> 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() 

鼠标滚动 scroll()

>>> pyautogui.scroll(10)   # 向上滚动10“点击”
>>> pyautogui.scroll(-10)  # 向下滚动10个“点击”
#移动鼠标光标到100,200,然后向上滚动10 "点击"
>>> pyautogui.scroll(10, x=100, y=100) 

3.键盘操作

模拟键盘 Write ()

>>> pyautogui.write('Hello world!')    # 立即打印出“你好,世界!
>>> pyautogui.write('Hello world!', interval=0.25)  # 打印出“Hello world!”,每个字符后面有0.25秒的延迟

按下keyUp (),释放keyDown ()

>>> pyautogui.keyDown('shift')  # 按下shift键
>>> pyautogui.keyUp('shift')    # 松开shift键
#下面代码如同上面一样的效果,press()同时执行按下松开 
>>> pyautogui.press('shift')     # 按左箭头键  

按下enter、 esc、 f1…

>>> pyautogui.press('enter')  # 按下Enter 
>>> pyautogui.press('f1')     # 按下  F1 
>>> pyautogui.press('left')   # 按下 left 
#或者你可以设置按下次数:
>>> pyautogui.press('left', presses=3)

按下前后操作hold()

>>> 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键

4.设置弹窗

 # 确定”按钮的简单消息框。返回单击的按钮的文本。
>>> alert(text='', title='', button='OK')
 # 显示带有文本输入的消息框以及“确定”和“取消”按钮。返回输入的文本
>>> confirm(text='', title='', buttons=['OK', 'Cancel'])
 #显示带有文本输入的消息框以及“确定”和“取消”按钮。键入的字符显示为 * 。返回输入的文本,如果单击“取消”则返回“无”。
>>> password(text='', title='', default='', mask='*')

5.截图功能

>>> im2 = pyautogui.screenshot('my_screenshot.png') #得到图片的位置
#截图取左边、顶部为原点,宽度和高度的区域 region=(左边、顶部,宽度,高度)
>>> im = pyautogui.screenshot(region=(0,0, 300, 400)) 

PyAutoGUI详情可参考

 类似资料: