python PyAutoGUI 使用

pip install pyautogui

document

import pyautogui

pyautogui.size()
pyautogui.position()

鼠标

  • To 是绝对坐标
  • Rel 或者 不带 To 是相对坐标
pyautogui.moveTo(x=None, y=None, duration=0.0)
pyautogui.dragTo(x=None, y=None, duration=0.0, button=PRIMARY)

click(x=None, y=None, clicks=1, interval=0.0, button=PRIMARY, duration=0.0)

  • doubleClick
  • tripleClick

mouseDown
mouseUp

scroll

键盘

typewrite
press(keystr, presses=1, interval=0.0)
hotkey

KEYBOARD_KEYS

keyDown
keyUp

截屏

pyautogui.screenshot(r’C:\Users\pc\Desktop\test.png’, region=(x, y, width, height))

通过图片匹配获取点击位置
pyautogui.center(pyautogui.locateOnScreen(‘图片路径’, grayscale=True))
pyautogui.locateCenterOnScreen()

解决图片匹配不到的问题:

  1. 使用 opencv 的来提高识别率
pip install opencv-python
  1. 调低匹配函数 confidence 参数(识别准确度)
    confidence = 0.9|0.8等,confidence 越小,定位的精度会下降,但更容易匹配到图片。
  2. 转换为灰度匹配 grayscale=True 会使图像和屏幕截图中的颜色去饱和,可以避免由显示器饱和度不同导致的图像定位失败。
  3. region 参数缩小匹配范围 (x,y,width,height),找图会更快,也避免其他区域图像的干扰
  4. 多图定位:同一图像存在不同的状态,如 icon 在不同场景下可能有不同的显示效果,可以把不同显示效果的多张图片归为一个事件,对多张图进行循环查找,定位一张图就可以对整个事件进行定位。
import pyautogui
 
#循环找图,找到就返回图像中心点,没找到就打印'没找到'
def imgs_locate(args):
    for i in range(len(args)):
    	r = pyautogui.locateCenterOnScreen(arg[i])
        if r !== None:
            return r
        else:
            pass
     # print('没找到')
 
#测试
print(imgs_locate(['images/test.png','images/test1.png'])

其他相关

中文输入 使用赋值粘贴
pip install pyperclip
copy(“str”) 修改剪切板内容
pyautogui.hotkey(“Ctrl”, “v”)

获取日期字符串
datetime.datetime.now().strftime(‘%Y-%m-%d’)

你可能感兴趣的:(python,开发语言)