MacacaUIFinder元素查找器
MacacaUIFinder元素查找器
1. 这是什么?
- 这是一个用JavaSwing写的Macaca元素查找器,方便测试的小伙伴们定位元素,如果觉得不错,还请点个Star鼓励下,嘿嘿.
地址:https://github.com/MatrixSeven/MacacaUIFinder
2. 为了什么?
- 为了解决在
app-inspector
上找到元素后,没一次在Java中启动Macaca(启动链接MacacaServer的过程)定位元素巨慢,有时候一个元素定位失败了,
就要关闭macaca-server
,然后启动app-inspector
,找到元素,然后在次切换到macaca-server
.我这里推荐启动app-inspector
后开很多
浏览器tab页面,把需要定位元素的页面都在tab中打开,然后打开本软件一次寻找元素,确认无误后拷贝出可用的定位串,直接在Java的测试用例中使用,而不必
为了一个元素没有定位到反复重启Macaca-client(启动链接是一个非常耗时的动作)
. - 还为了什么?为了我的女朋友...也为了更多挣扎在自动化UI测试的小伙伴们.
3. 为什么代码这么Low.
- 没办法,代码几乎一天抽时间写出来的.而且Swing的布局实在是
恶心
,本来想用JavaFX,但是没有找到好的资料,不过写完后发现了个TornadoFX
,用
Kotlin写DSL,真是在好用了.大家可以尝试下
4. 配置文件格式
- 具体参照官方Demo里面的Json字段来填写sample-java
[
{
"name":"iphoneX",
"deviceName":"iPhone X",
"bundleId":"测试包bundleId",
"udid":"真实设备的udid",
"platformName":"iOS"
},
{
"name":"小米8",
"deviceName":"xiaomi 8",
"app": "apk下载路径",
"udid":"真实设备的udid",
"platformName":"android"
}
]
5. 启动命令
直接git clone
本项目或者下载MacacaElementUI-1.0.jar
然后直接执行java -jar MacacaElementUI-1.0.jar
即食用
该软件.
6. 关于设计
- 虽然很low,但是总体还是有设计可寻
在写这个UI的时候为了避免层层嵌套,采用了事件发布订阅模式,每触发一个按钮/组件,
就会发布对应的事件到事件管理者,然后事件管理者会才用线程分发的模式来分发这个事件给对应的
订阅者,从而完成UI/事件的处理与各个JComponent
的分离.
7. 实际效果
配置页面
执行页面
8. 提示
- 软件可能有未知bug.
- 目前处于测试阶段,勿喷.
作者:Accelerator
Email:hacker.kill07@gmail.com
吾爱Java(QQ群):170936712(点击加入)
MacacaUIFinder元素查找器的更多相关文章
- jQuery 的选择器常用的元素查找方法
jQuery 的选择器常用的元素查找方法 基本选择器: $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myE ...
- 【哈希表】CodeVs1230元素查找
一.写在前面 哈希表(Hash Table),又称散列表,是一种可以快速处理插入和查询操作的数据结构.哈希表体现着函数映射的思想,它将数据与其存储位置通过某种函数联系起来,其在查询时的高效性也体现在这 ...
- jQuery元素查找方式
jQuery常用的元素查找方法总结 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到 ...
- AC日记——元素查找 codevs 1230
1230 元素查找 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 给出n个正整数,然后有 ...
- spring的PathMatchingResourcePatternResolver-通配符的Resource查找器
PathMatchingResourcePatternResolver是一个通配符的Resource查找器,包括: /WEB-INF/*-context.xml com/mycompany/**/ap ...
- ExcelReport第三篇:扩展元素格式化器
导航 目 录:基于NPOI的报表引擎——ExcelReport 上一篇:ExcelReport源码解析 概述 上篇中已介绍了ExcelRepor的架构,本篇将通过例子讲述如何扩展元素格式化器以满足 ...
- codevs1230 元素查找
1230 元素查找 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 给出n个正整数,然后有m个询问,每 ...
- 元素查找(codevs 1230)
1230 元素查找 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 给出n个正整数,然后有m个询问,每 ...
- 浅析jQuery中常用的元素查找方法总结
本篇文章是对jQuery中常用的元素查找方法进行了详细的总结和介绍,需要的朋友参考下 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文 ...
随机推荐
- Weka学习之关联规则分析
步骤: (一) 选择数据源 (二)选择要分析的字段 (三)选择需要的关联规则算法 (四)点击start运行 (五) 分析结果 算法选择: Apriori算法参数含义 1.car:如果设为真,则会挖掘类 ...
- C#实战Microsoft Messaging Queue(MSMQ)消息队列(干货)<转>
前言 在使用MSMQ之前,我们需要自行安装消息队列组件!(具体安装方法大家自己搜一下吧) 采用MSMQ带来的好处是:由于是异步通信,无论是发送方还是接收方都不用等待对方返回成功消息,就可以执行余下的代 ...
- php判断页面是否是微信打开的示例(微信打开网页)
代码如下: $user_agent = $_SERVER['HTTP_USER_AGENT'];if (strpos($user_agent, 'MicroMessenger') === false) ...
- struts2中在Action中如何获取servlet的api?
1.通过ActionContext类(拿到的不是真正的servlet api,而是一个map) ActionContext context = ActionContext.getContext(); ...
- go的url解析
对于解析url,是一个常见的场景,下面就来说这个,直接见代码: package main import ( "fmt" "net/url" "stri ...
- Java并发:等待事件发生后所有线程继续执行
等待某一个指定的事件发生后,才让多个等待的线程继续执行,以下是我能想到的几个方法,欢迎讨论.指正. 1.闭锁CountDownLatch 闭锁是典型的等待事件发生的同步工具类,将闭锁的初始值设置1,所 ...
- linux 上安装apache 出现 configure: error: APR not found. Please read the documentation错误
今日编译apache时出错: #./configure --prefix……检查编辑环境时出现: checking for APR... noconfigure: error: APR not fou ...
- EasyDSS流媒体解决方案实现的实时数据统计报表、视频文件上传、点播、分享、集成代码等功能
之前的EasyDSS作为rtmp流媒体服务器自从推出就备受用户好评,随着用户的需求的变更产品自身的发展是必须的: 为了更好的用户体验和和功能的完善,我们在EasyDSS的基础上增添了服务器硬件数据报表 ...
- js自动补全
<!doctype html> <html> <style> body { margin-left: 0px; margin-top: 0px; margin-ri ...
- 换教室(期望+DP)
换教室(期望+DP) \(dp(i,j,1/0)\)表示第\(i\)节课,申请了\(j\)次调换,这节课\(1/0\)调换. 换教室 转移的时候考虑: 上次没申请 这次也没申请 加上\(dis(fr[ ...