跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 使用 Golang 来控制你的 iOS 设备~
未分類
15 5 月 2020

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

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

資深大佬 : hongxi2200 4

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

https://github.com/ElectricBubble/gwda

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

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

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

放一个示例代码的执行 GIF

大佬有話說 (24)

  • 資深大佬 : Leigg

    大部分的操作都能模拟?获取元素位置,点击指定 app,回到主页,下滑上推这些

  • 主 資深大佬 : hongxi2200

    @Leigg `WDA` 支持的命令全都可以的哟

  • 主 資深大佬 : hongxi2200

    @Leigg

    // 查找符合条件第一个元素
    session.FindElement()

    // 查找符合条件的全部元素
    session.FindElements()

    // 查找指定元素的子元素(符合条件的第一个)
    element.FindElement()

    // 查找指定元素的子元素(符合条件的全部元素)
    element.FindElements()

    // 获取元素的坐标和宽高
    elemIcon.Rect()

    // 启动指定 app
    session.AppLaunch()

    // 回到主页
    client.Homescreen()

    // 上滑
    session.SwipeUp()

    项目的示例代码基本上都用到了这些基本命令哈

  • 資深大佬 : pmispig

    请问能输入用户密码登陆吗,然后如果弹出警告点确认,这些都能做到不

  • 資深大佬 : oubfgiar

    iOS 非越狱群控指日可待?[狗头]

  • 資深大佬 : yukiloh

    原理是啥?
    安卓的残疾人功能还真挺好,不过 autojs 最后转成收费,可惜

  • 主 資深大佬 : hongxi2200

    @pmispig

    弹窗也可以手动 /自动处理

    ⬇️ 弹窗自动处理 ⬇️
    // 在连接设备的时候,追加一个 “true” 参数,用于在连接设备时,预设“允许 /拒绝”的选择器
    // 允许: **/XCUIElementTypeButton[`label IN {‘允许’,’好’,’仅在使用应用期间’,’暂不’}`]
    // 拒绝: **/XCUIElementTypeButton[`label IN {‘不允许’,’暂不’}`]
    gwda.NewClient(“http://localhost:8100”, true)
    //

  • 資深大佬 : pmispig

    @hongxi2200 多谢~

  • 主 資深大佬 : hongxi2200

    @yukiloh

    简单粗暴的理解就是
    gwda 发 HTTP 请求给 appium/WebDriverAgent ( forked from facebookarchive/WebDriverAgent )
    WebDriverAgent 利用苹果提供的测试框架 XCTest.framework 进行设备的各种操作命令

  • 主 資深大佬 : hongxi2200

    @oubfgiar

    已经有好些个厂商做到了。。。

  • 資深大佬 : oubfgiar

    @hongxi2200 厉害厉害!因为不接触这个,还真是孤陋寡闻了,哈哈。

  • 主 資深大佬 : hongxi2200

    @oubfgiar

    其实厉害的还是 Facebook 那帮子人
    得亏他们写出来了 WDA ( WebDriverAgent )

  • 資深大佬 : aydd2004

    不是吧 我找这个找了好久 但是不会 go 啊 我去

  • 主 資深大佬 : hongxi2200

    @aydd2004

    有 python 版本的话

  • 資深大佬 : stevenkang

    感谢分享,先 star

  • 主 資深大佬 : hongxi2200

    @stevenkang

  • 資深大佬 : magicdawn

    请教下 appium 也是用 wda, macacajs 用他们自己写的 XCTestWD
    为啥他们都需要 app or bundleId 配置, 如果只是控制手机, 这里 app or bundleid 应该填啥

  • 資深大佬 : troyl

    这跟自带的 XCUITest 有啥区别吗?

  • 主 資深大佬 : hongxi2200

    @magicdawn
    可以简单的理解为 XCTestWD 就是 swift 版的 WDA ( WDA 使用的是 Objective-C )
    Product Bundle Identifier 的修改是因为需要给 WDA-Runner (会通过 Xcode 安装到设备上)一个唯一的

  • 主 資深大佬 : hongxi2200

    @troyl
    appium/WebDriverAgent 和 前面同学提到的 macacajs/XCTestWD 本质上都是使用的苹果的测试框架哈

    这就好比是其实大家都可以通过浏览器的开发者模式的 控制台 输入对应的 js 实现页面元素的点击 /输入等操作
    但是却出现了 selenium,然后觉得真香

  • 資深大佬 : JRay

    稳,空了来试试

  • 主 資深大佬 : hongxi2200

    @JRay

  • 資深大佬 : JRay

    @hongxi2200 搜图? 怎么玩儿?

  • 主 資深大佬 : hongxi2200

    @JRay

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

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

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

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

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具