【Python】PC端UI自动化:鼠标控制+定时调度器使用

2020-04-17  本文已影响0人  玉米fight

我们都知道要实现APP内的UI自动化常用的有很多自动化框架来实现鼠标拖拽、滑动、点击等操作。PC端的UI自动化操作,其实现步骤也可借鉴:
1、绝对坐标/相对坐标
2、进行滑动、点击等业务操作
本次实现使用python已有模块:pyautogui(鼠标操作)、APScheduler(定时调度器)

模块介绍

PyAutoGUI:Python的GUI自动化工具,模拟鼠标的移动、点击、拖拽,键盘按键输入、按住等操作,支持平台(Windows,OS X,Linux)。常用方法单击click()、双击doubleClick()、按下按键press('esc')等

APScheduler四大组件:
触发器 triggers :设定触发任务的条件
任务储存器 job stores:存放任务,把任务存放在内存或数据库中
执行器 executors: 执行任务,可以设定执行模式为单线程或线程池
调度器 schedulers: 把上方三个组件作为参数,通过创建调度器实例来运行
具体的介绍和使用参见:https://www.jianshu.com/p/4f5305e220f0

代码实现

根据定时任务触发时机,模拟鼠标操作,完成重复性动作

import pyautogui
import time
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime

def job():
    pyautogui.click(1130, 874)
    time.sleep(2)
    pyautogui.doubleClick(1344, 821)
    print("已完成一次触发",datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

# 定义BlockingScheduler
sched = BlockingScheduler()
sched.add_job(job, 'interval', seconds=240)
sched.start()


#获取当前鼠标所在坐标
# import os
# import time
# import pyautogui as pg
#
# try:
#     while True:
#         print("按下组合键 {Ctrl}+C 结束执行\n")
#         sW, sH = pg.size()  # 获取屏幕的尺寸(像素)screenWidth,screenHeight
#         print("屏幕分辨率:\n" + str(sW) + ',' + str(sH) + '\n')  # 打印屏幕分辨率
#         x, y = pg.position()  # 获取当前鼠标的坐标(像素)
#         print("鼠标坐标:\n" + str(x).rjust(4) + ',' + str(y).rjust(4))  # 打印鼠标坐标值
#         time.sleep(1)  # 等待1秒
#         os.system('cls')  # 清屏
# except KeyboardInterrupt:
#     print('\n结束,按任意键退出....')  # 检测到Ctrl+c组合键结束运行
结果: 屏幕快照 2020-02-13 下午6.58.30.png

扩展学习:

1、windows应用程序操作?参考https://www.cnblogs.com/wuxunyan/p/9366178.html
2、MAC应用程序操作?参考https://blog.csdn.net/gaoyuqiang30/article/details/75115763

上一篇下一篇

猜你喜欢

热点阅读