使用 Golang 来控制你的 iOS 设备~

2020-05-11 11:06:12 +08:00
 hongxi2200

有兴趣的小伙伴可以玩一玩哈~

https://github.com/ElectricBubble/gwda

Golang 实现的 WebDriverAgent 客户端库,可以使用 Golang 控制 iOS 设备,实现 UI 自动化操作。(无需越狱)

参考 facebook-wda (python): https://github.com/openatx/facebook-wda

几乎完成了 appium/WebDriverAgent 的全部命令(部分 tvOS 的因为没环境测试。。就暂时放弃了)

放一个示例代码的执行 GIF

😳其实执行速度还可以,只是 GIF 压缩感觉卡顿

下面是示例代码的执行输出:

2020/05/10 00:02:00 Name: TEST’s iPhone
2020/05/10 00:02:00 IsSimulator: false
2020/05/10 00:02:00 UIKit Size (Points): 375 x 667
2020/05/10 00:02:01 UIKit Scale factor: 2
2020/05/10 00:02:01 Native Resolution (Pixels): 750 x 1334
2020/05/10 00:02:02 Status bar size: 375 x 20
2020/05/10 00:02:02 State: Plugged in, at 100%
2020/05/10 00:02:02 Level: 100%
2020/05/10 00:02:02 该 App 未运行, 开始打开 App: com.apple.Preferences
2020/05/10 00:02:04 使当前 App 退回 主屏幕, 并至少等待 3s 后(默认等待时间)再切换到前台
2020/05/10 00:02:09 当前 App 的 PID: 3616
2020/05/10 00:02:33 搜索输入框 的截图图片格式: png
2020/05/10 00:02:33 搜索输入框 的截图图片大小(像素): (594,72)
2020/05/10 00:02:37 共找到 3 个搜索结果
2020/05/10 00:02:48 当前屏幕第一个 App/文件夹 的文本内容: “自带”文件夹
2020/05/10 00:02:48 该 App/文件夹 的坐标和大小: {
    "y" : 26,
    "x" : 199,
    "width" : 64,
    "height" : 88
  }
2020/05/10 00:02:57 Orientation: Device oriented vertically, home button on the bottom
2020/05/10 00:02:57 Rotation: {
    "x" : 0,
    "y" : 0,
    "z" : 0
  }

6647 次点击
所在节点    Go 编程语言
28 条回复
JRay
2020-05-12 09:03:50 +08:00
稳,空了来试试
hongxi2200
2020-05-12 09:11:01 +08:00
@JRay
🤪再增加个搜图功能,那就可以更好玩了
JRay
2020-05-12 09:16:39 +08:00
@hongxi2200 搜图? 怎么玩儿?
hongxi2200
2020-05-12 09:31:01 +08:00
@JRay

// 这三个都拥有三种截图函数
client.ScreenshotToImage()
session.ScreenshotToDisk()
element.Screenshot()

client/session 都可以截图整个屏幕

有了“大图”,然后拿出你想要点击位置的“小图”,
就可以 “大图” 里 “小图”,并对应的找到 “小图” 所在的坐标
然后就可以让 gwda 去点击啦

不过这块儿我还在考虑该咋弄。。
直接上 opencv 的话。。会不会有点大材小用?
但的确后面可能需要 opencv 的 sift 算法,可以做到一张图在不同缩放的分辨率图片上找到“小图”
hongxi2200
2020-05-22 11:15:24 +08:00
@JRay

🍻 更新了 gwda 的扩展库 [gwda-ext-opencv]( https://github.com/electricbubble/gwda-ext-opencv)

可直接通过指定图片进行操作啦
lekai63
2020-05-24 10:29:21 +08:00
666~
话说为什么我看到这玩意儿的第一反映是 可以拿来在 iOS 上自动刷强国?
hongxi2200
2020-05-24 16:25:50 +08:00
@lekai63
哈哈哈哈,也是可以的哈
配合上 gwda-ext-opencv 就可以在刷游戏了
aukw
2023-06-13 10:02:06 +08:00
很 cool !

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/670460

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX