7-python库之-pyautogui鼠标键盘控制、图片位置查找

还是在自动化上面的应用,对于web的测试可以使用selenium来获取元素,进行按键控制或者文字输入,模拟用户操作实现自动化。可是对于非web的win桌面应用,我们就没办法了,这时候就需要向按键精灵那样,去查找对应的位置进行点击了。

pip install pyautogui

1.鼠标控制

移动到对应的坐标,然后点击

import pyautogui

# 2秒钟鼠标移动到坐标为100,100的位置
pyautogui.moveTo(x=100, y=100, duration=2)

# 鼠标左击一次
pyautogui.click()

获取屏幕分辨率,鼠标当前位置

# 获取当前屏幕分辨率
screen_w, screen_h = pyautogui.size()

# 获取当前鼠标位置
current_X, current_y = pyautogui.position()

移动到相对位置

#2秒钟鼠标移动到现在鼠标所在位置的相对移动 ,向右移动10,向下移动10
pyautogui.moveRel(xOffset=10, yOffset=10, duration=2)

鼠标单击、双击、右击、中击

# 鼠标左击一次
pyautogui.click()
# 这个函数还有很多参数,可是实现单击、双击、右击、中击,只需要改对应的参数就行
# pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear)

# 不过我们一般不使用pyautogui.click()去弄各种击,因为记不住,就使用一下封装好的函数

# 鼠标双击
pyautogui.doubleClick()

# 鼠标置3击
pyautogui.tripleClick()

# 右击
pyautogui.rightClick()

# 中击
pyautogui.middleClick()

# 鼠标当前位置滚轮滚动
pyautogui.scroll()

鼠标拖拽

#鼠标拖拽
pyautogui.dragTo(x=427, y=535, duration=3,button='left')

#鼠标相对拖拽
pyautogui.dragRel(xOffset=100,yOffset=100,duration=,button='left',mouseDownUp=False)

#鼠标移动到x=1796, y=778位置按下
pyautogui.mouseDown(x=1796, y=778, button='left')

#鼠标移动到x=2745, y=778位置松开(与mouseDown组合使用选中)
pyautogui.mouseUp(x=2745, y=778, button='left',duration=5)
2.键盘控制

输入信息,但是只能输入字符串,不能输入中文

# 2秒钟鼠标移动到坐标为500,500的位置
pyautogui.moveTo(x=500, y=500, duration=2)

# 鼠标左击一次
pyautogui.click()

# 输入信息
pyautogui.typewrite(message='test',interval=0.5)

按住、放开,键盘上的字符都可以

# 按住shift键
pyautogui.keyDown('shift')
# 放开shift键
pyautogui.keyUp('shift')

按一下

#按一下ESC键
pyautogui.press('esc')

组合键

# 组合键
pyautogui.hotkey('ctrl', 'c')
3.截屏

在实际应用中有一个用法,截取对应位置的文字,然后将图片转化成文字,这个这pytesseract章节说明

# 截取整个屏幕
img = pyautogui.screenshot()
img.save('img.png')

# 截取指定位置、大小的图片
img = pyautogui.screenshot(region=[10, 20, 30, 40])  # x,y,w,h
img.save(img)
4.查找图片所在的位置

这个功能还是比较常用的,找到对应的位置,点击

img_location = pyautogui.locateOnScreen(image='img.png')
logging.info("img location %s", img_location)

if img_location:
    # 获取图片的中心位置,然后点击
    x, y = pyautogui.center(img_location)
    pyautogui.moveTo(x, y, duration=1)
    pyautogui.click()
    logging.info("click img_location...")
  • 0
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值