1. 前言

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

2. UU加速器的自动化demo

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

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

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"from airtest.core.api import *
from airtest_ocr.api import *
import os
import win32api,win32con
import win32guidef close_app():try:os.system("taskkill /f /im uu.exe")except:passdef 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 = hwin = 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加速器.*")#连接窗口

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

用纯python脚本玩转UU加速器相关推荐

  1. 使用Python脚本玩转类FOMO3D游戏

    使用Python脚本玩转类FOMO3D游戏 前言 笔者其实编程水平并不高,也是半路出家的半吊子,第一次在CSDN上发帖,如果在技术上有什么不成熟的地方请各位大佬能够指教一下. 另外,本文只探究技术,并 ...

  2. 小白如何用Python脚本玩转跳一跳

    相信大家最近都在玩风靡一时的微信小程序跳一跳,那么作为一个小白如何才能给自己开一挂呢,我,虽然是程序员一枚,但是在网上找的教程还是看的稀里糊涂的,但是!我还是凭借一己之力运行出来了嘻嘻~那么来简单写一 ...

  3. python web为什么不火_如何用纯 Python 写交互式 Web 应用?

    不用学前端编程,你就能用 Python 简单高效写出漂亮的交互式 Web 应用,将你的数据分析成果立即展示给团队和客户. 痛点 从我开始折腾数据分析工具的那一天,就没有想明白一件事儿 -- 我打算把数 ...

  4. 快看,好神奇!把Python脚本变成漂亮的机器学习工具

    本文介绍一个为ML工程师构建的应用程序框架:Streamlit 用300行Python代码编写一个具有实时神经网络推理的语义搜索引擎. 根据我的经验,每一个重要的机器学习项目最终都是由充满bug和不可 ...

  5. 纯Python包发布setup脚本编写示例

    纯Python包发布setup脚本编写示例 2014 年 6 月 23 日IT.PythonIT.python 如果你有多个模块需要发布,而它们又存在于多个包中,那么指定整个包比指定模块可能要容易地多 ...

  6. 纯Python模块发布setup脚本编写示例

    纯Python模块发布setup脚本编写示例 2014 年 6 月 22 日IT.PythonIT.python 如果你正准备发布几个模块,特别当它们并不是只在一个特定的包内,你可以在setup脚本中 ...

  7. python 遍历usb设备_python程序员教你写脚本玩微信跳一跳,只要有耐心,你就是王者!...

    温馨提示:微信已经开始检测分数异常高的情况了,请大家不要跑太高哦 游戏模式 这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离.可能刚开始上手的时候,因 ...

  8. python可以怎么玩_这波太炸了!Python脚本可视化居然可以这么玩!

    如同艺术家们用绘画让人们更贴切的感知世界,数据可视化也能让人们更直观的传递数据所要表达的信息.你知道Python脚本可视化有多好看么?就像下图这样,是不是感觉十分高端大气上档次: 以上示例都是通过Ry ...

  9. Python实用案例,Python脚本实现玩转emoji,我微又“偷偷”更新这个表情!

    前言 今天我们就利用Python脚本实现天气查询应用吧.直接开整~ 效果展示 emoji的编码 Emoji 字符是 Unicode 字符集中的一部分.也就是说,Emoji 符号就是一个文字,它会被渲染 ...

最新文章

  1. ORACLE了局,每天10问(二)
  2. 编程式事务与声明式事务
  3. 项目管理一般知识:项目的组织方式
  4. java ee maven_针对新手的Java EE7和Maven项目–第8部分
  5. 用Spark学习FP Tree算法和PrefixSpan算法
  6. Kotlin 条件控制(六)
  7. elasticsearch集群搭建实例
  8. TypeScript算法专题 - blog5 - 单链表节点的`任意k个分组反转`的实现
  9. 大型web工程的session管理器构想
  10. Unity Drawcall、渲染顺序、打包图集、特效清理、代码优化
  11. linux 编译条件检查,如何利用GCC编译选项检测栈溢出
  12. 微机8088主板图绘制
  13. 解决IDM下载城通网盘,一个网站不允许请求同一个文件两次,即使设置了快捷键也无用的问题
  14. Python SQLite3 教程
  15. 个性签名html,简单个性签名大全2021最新版-简简单单的个性签名--个性简单签名设计-腾牛个性网...
  16. 使用Photoshop制作圣诞海报
  17. 分布式系统关注点——如何去实施「负载均衡」? 1
  18. 2022虎年头像框制作小程序源码带背景音乐+流量主功能
  19. torch.nn.Conv2d() 用法讲解
  20. Java反射的优点和缺点

热门文章

  1. oracle 配置变更记录,Oracle安装、配置和.NET访问的简单记录
  2. 核酸检测预约和结果查询系统
  3. AI虚拟人物 数字人直播,不用出镜,不用露脸的直播方式(附教程 软件)
  4. 李宏毅ML2021 HW7 BERT-Question Answering
  5. ES5和ES6的类,静态方法,继承实现代码
  6. 御坂坂的C++学习之路(1)
  7. 呼叫中心中继网关参数选型
  8. 弱网测试(ios手机自带)
  9. 百度飞桨亮相2019 AIIA,四大领先技术剑指落地引开发者点赞
  10. 积分无法积,用估值后再使用连续函数介值定理_20160430