zoukankan      html  css  js  c++  java
  • Python三方库PyAutoGUI的使用方法

    通过ssh远程执行脚本的时候,需要加上:

    import os
    os.environ["DISPLAY"] = ":0" # 注意这行代码需要写在"import pyautogui"之前
    import pyautogui
    

    1.安装:

    sudo pip3 install python3-xlib
    sudo apt-get install scrot
    sudo apt-get install python3-tk
    sudo apt-get install python3-dev
    sudo pip3 install pyautogui
    

    2.暂停和自动放故障

    pyautogui.PAUSE = 1,每个执行动作之后,都会等待1s
    pyautogui.FAILSAFE = True,启动自动防故障功能(鼠标移到屏幕的做上角,将导致pyautogui产生pyautogui.FailSafeException异常)在自动化测试项目中,为了不自动跳出用例脚本,通常设置未False
    

    3.鼠标操作

    3.1 控制鼠标移动

    pyautogui.size() 返回两个整数元素,包含屏幕的宽和高的像素数。
    pyautogui.moveTo(x, y, duration=0.25)移动到某个坐标,duration表示移动到目的位置所需的秒数。
    pyautogui.moveRel(x, y, duration=0.25)相对于当前位置移动鼠标。x,y可以为负数
    

    3.2 获取鼠标位置

    pyautigui.positon()返回鼠标的位置
    

    3.3 点击鼠标

    pyautogui.click() 默认左键在当前位置点击
    pyautogui.click(x, y, button='left')在指定位置左键点击,button可以为'left','middle','right'
    pyautogui.mouseDown()按下不放
    pyautogui.mouseUp()释放鼠标按键
    pyautogui.doubleClick()双击左键
    pyautogui.rightClick()双击右键
    pyautogui.middleClick()双击中键
    

    3.4 拖动鼠标

    pyautogui.dragTo()鼠标拖动到一个位置
    pyautogui.dragRel()相对当前拖到一个距离的位置
    

    3.5 滚动鼠标

    pyautogui.scroll(number) 上下滚动的单位
    

    3.处理屏幕

    需安装scrot,才能在pyautogui中使用屏幕快照功能。sudo apt-get install scrot

    3.1获取屏幕快照

    image = pyautogui.screenshot() ,image是一个屏幕快照的对象
    image.getpixel(x, y) 返回图像中坐标处的像素对象,返回值是一个RGB元组,包含3个整数。
    

    3.2分析屏幕快照

    pyauto.pixelMatchesColor(50, 200,(130,135,144)) >>True
    

    4.图像识别

    实际使用下来有点问题,如果图标比较小的情况,无法定位,图像识别建议使用opencv模板匹配

    pyautogui.locateOnScreen("xxx.png") >>(643, 745, 70, 29)
    返回4个整数的元素,分别是屏幕上首次发现该图像时左边的x坐标、顶边的y坐标、宽度以及高度。
    如果该图像在屏幕上能够找到多出,locateAllOnScreen()函数将返回一个对象,将它传给list(),返回一个4整数元组的列表。
    list(pyautogui.locateAllOnScreen("xxx.png")) 
    pyautogui.center((643, 745, 70, 29)) >>返回图像区域的中心坐标
    

    5.键盘操作

    pyautogui.typewrite("message") 输入内容
    pyautogui.typewrite(['ctrl','alt','a','left'])从左到右,先后顺序按键盘的按键
    pyautogui.keyDown('shift')按住不放
    pyautogui.keyUp()键盘松开
    pyautogui.press('ctrl')单个按键
    pyautogui.hotkey('ctrl','c')组合按键(同时按)
    
    没伞的孩子,就要学会在雨中奔跑!
  • 相关阅读:
    Codeforces Gym100502H:Clock Pictures(KMP算法)
    SPOJ MINSUB
    POJ 2796:Feel Good(单调栈)
    搭建(WSTMart)php电商环境时缺少fileinfo函数
    TP微信扫码支付
    tp3.2 支付宝app支付
    tp3.2 支付宝手机网站支付
    Thinkphp3.2+PHPQRCode 二维码生成示例
    百度UEditor粘贴或插入的表格不显示边框的解决办法
    PHP:导出数据到word(包含图片)
  • 原文地址:https://www.cnblogs.com/mikigo/p/13182619.html
Copyright © 2011-2022 走看看