Macaca [开源] Macaca 元素查找器,再也不用频繁重启调试元素对错了!!!!!!!!!!!!

初学狗 · 2018年09月07日 · 最后由 达峰的夏天 回复于 2019年02月12日 · 2702 次阅读

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(点击加入)

共收到 12 条回复 时间 点赞

支持支持。

徐汪成 回复

🐯

狗粮无处不在防不胜防(:з」∠)

果冻 回复

😂 蜜汁尴尬

你好,想问下,直接运行这个 jar 包提示木有 macaca-client
{"返回结果":"寻找元素失败,请初始化 Macaca-client"}

我这要有啥前置步骤吗

MJW 回复

先初始化一下 点击那个记载配置文件 命令行要先启动 macacaserver

MJW 回复

或者点击确认切换配置。一定要有自己的配置文件哦

@ 初学够 能否改进现有 web 的实现呢?受众广些,方便更多用户

可以 抽时间套个 react 壳子就好了 而且好像本地起 macaca server 还能支持多用户同使用多设备。在设置里加个 macacaserver 的 ip 就好了

@ 初学狗 加油

等等。刚才没看清...现有的 web 端实现?大佬 给个 url

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册