用纯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加速器.*")#连接窗口

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

相关文章
|
30天前
|
Linux Shell Python
Linux执行Python脚本
Linux执行Python脚本
27 1
|
2月前
|
Web App开发 数据采集 自然语言处理
python脚本抢各大平台大额优惠卷
python脚本抢各大平台大额优惠卷
50 0
|
19天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
26天前
|
存储 监控 异构计算
【Python】GPU内存监控脚本
【Python】GPU内存监控脚本
|
26天前
|
Ubuntu Unix Linux
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
|
1月前
|
XML Shell Linux
性能工具之 JMeter 使用 Python 脚本快速执行
性能工具之 JMeter 使用 Python 脚本快速执行
41 1
性能工具之 JMeter 使用 Python 脚本快速执行
|
1月前
|
数据采集 测试技术 Python
Python自动化脚本的魅力与实践
Python自动化脚本的魅力与实践
54 0
|
1月前
|
数据安全/隐私保护 Python
使用Python脚本实现图片合成PDF功能
使用Python脚本实现图片合成PDF功能
28 0
|
1月前
|
安全 数据安全/隐私保护 开发者
如何使用Pyarmor保护你的Python脚本
如何使用Pyarmor保护你的Python脚本
49 0
|
1月前
|
数据处理 Python
Python自动化脚本
Python自动化脚本
26 0