用纯python脚本玩转UU加速器

简介: 用纯python脚本玩转UU加速器

此文章来源于项目官方公众号:“AirtestProject”

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

之前几期内容,我们出过纯py形式的Android自动化脚本。同学们一直让再出一下纯py形式的Windows脚本,今天我们以UU加速器为例,给大家出一个简单的学习demo。

(这里插播个小广告,Airtest正在参加掘金一年一度的创作者大赛,希望喜欢Airtest的朋友,能动动手指,给我们投个9票吧,万分感谢!!: rank.juejin.cn/rank/2022/w…

2. UU加速器的自动化demo

今天的练习demo也非常简单,大致内容是:

  • 确保先关闭UU加速器的进程
  • 打开UU加速器
  • 获取UU加速器的句柄,并连接上
  • 给UU加速器做一些简单的测试

image.png

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
from airtest_ocr.api import *
import os 
import win32api,win32con
import win32gui
def close_app():
    try:
        os.system("taskkill /f /im uu.exe")
    except:
        pass
    
def open_app():
    os.startfile(r"D:\Netease\UU\uu.exe")
    sleep(3)
    hwnd_title = {}
    def get_all_hwnd(hwnd, mouse):#获得当前所有窗口句柄
        if (win32gui.IsWindow(hwnd)
                and win32gui.IsWindowEnabled(hwnd)
                and win32gui.IsWindowVisible(hwnd)):
            hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)})
    win32gui.EnumWindows(get_all_hwnd, 0)#获取uu加速器的窗口句柄
    for h, t in hwnd_title.items():
        if t == "UU加速器":
            uu_handle = h
    win = connect_device("windows:///{handle}".format(handle=uu_handle))#连接窗口
    sleep(3)
    
def UU_test():
    touch(Template(r"tpl1672282498716.png", record_pos=(0.132, 0.388), resolution=(791, 688)))
    touch(Template(r"tpl1671784347112.png", record_pos=(0.273, -0.296), resolution=(1000, 688)))
    sleep(1)
    text("绝地求生")
    sleep(1)
    
    touch(Template(r"tpl1672283419545.png", record_pos=(0.264, 0.064), resolution=(1000, 688)))
    assert_exists(Template(r"tpl1671784672194.png", record_pos=(-0.124, -0.046), resolution=(989, 688)), "找到结果")
    
    double_click(Template(r"tpl1671785263585.png", record_pos=(0.317, -0.307), resolution=(967, 688)))
    keyevent("^a") #全选
    sleep(1.0)
    keyevent("^c") #复制
    sleep(1.0)
    keyevent("{BACK}") #删除
    sleep(1.0)
    keyevent("^v") #粘贴
    sleep(1.0)
close_app()
open_app()
UU_test()

3. 小结

1)os.system

system 函数可以将字符串转化成命令在我们的机器上运行,就像我们写的终止UU加速器的进程那样:

os.system("taskkill /f /im uu.exe")
2)os.startfile

打开windows窗口:

os.startfile(r"D:\Netease\UU\uu.exe")
3)win32gui

win32gui模块,可以帮助我们做很多关于Windows窗口的事情,比如:

# 判断活跃窗口
win32gui.IsWindow()
# 获取窗口标题
win32gui.GetWindowText()
# 枚举窗口
win32gui.EnumWindows
......
4)连接窗口

在Airtest操作Windows窗口之前,我们必须使用连接窗口的语句,把目标窗口连接上,之后才能对它进行一系列的自动化操作:

win = connect_device("windows:///{handle}".format(handle=uu_handle))#连接窗口

当然,其实这里我们也可以不用这么复杂的方式来获取句柄,直接使用正则表达式匹配窗口title,会更加简洁好用:

win = connect_device("Windows:///?title_re=UU加速器.*")#连接窗口

那今天的练习就到这里啦,希望同学们多多关注我们!

相关文章
|
2月前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
88 1
思科设备巡检命令Python脚本大集合
|
25天前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
11天前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
50 7
21个Python脚本自动执行日常任务(2)
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
131 68
|
18天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
24 7
|
21小时前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
16 5
|
23天前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
28天前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
1月前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
64 2
|
1月前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
80 3