MacacaUIFinder 元素查找器

github 地址 https://github.com/MatrixSeven/MacacaUIFinder.git

觉得不错还请来个 Star

1. 这是什么?

  1. 这是一个用 JavaSwing 写的 Macaca 元素查找器,方便测试的小伙伴们定位元素.

2. 为了什么?

  1. 为了解决在app-inspector上找到元素后,没一次在 Java 中启动 Macaca(启动链接 MacacaServer 的过程) 定位元素巨慢,有时候一个元素定位失败了, 就要关闭macaca-server,然后启动app-inspector,找到元素,然后在次切换到macaca-server.我这里推荐启动app-inspector后开很多 浏览器 tab 页面,把需要定位元素的页面都在 tab 中打开,然后打开本软件一次寻找元素,确认无误后拷贝出可用的定位串,直接在 Java 的测试用例中使用,而不必 为了一个元素没有定位到反复重启Macaca-client(启动链接是一个非常耗时的动作).
  2. 还为了什么?为了我的女朋友...也为了更多挣扎在自动化 UI 测试的小伙伴们. ### 3. 为什么代码这么 Low.
  3. 没办法,代码几乎一天抽时间写出来的.而且 Swing 的布局实在是恶心,本来想用 JavaFX,但是没有找到好的资料,不过写完后发现了个TornadoFX,用 Kotlin 写 DSL,真是在好用了.大家可以尝试下

4. 配置文件格式

  1. 具体参照官方 Demo 里面的 Json 字段来填写sample-java json [ { "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. 关于设计

  1. 虽然很 low,但是总体还是有设计可寻 在写这个 UI 的时候为了避免层层嵌套,采用了事件发布订阅模式,每触发一个按钮/组件, 就会发布对应的事件到事件管理者,然后事件管理者会才用线程分发的模式来分发这个事件给对应的 订阅者,从而完成 UI/事件的处理与各个JComponent的分离.

7. 实际效果

  1. 配置页面

  2. 执行页面

8. 提示

  1. 软件可能有未知 bug.
  2. 目前处于测试阶段,勿喷.


作者:Accelerator

Email:hacker.kill07@gmail.com

吾爱 Java(QQ 群):170936712(点击加入)


↙↙↙阅读原文可查看相关链接,并与作者交流