V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hongxi2200  ›  全部回复第 2 页 / 共 2 页
回复总数  35
1  2  
2020-05-24 16:25:50 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@lekai63
哈哈哈哈,也是可以的哈
配合上 gwda-ext-opencv 就可以在刷游戏了
2020-05-22 11:25:28 +08:00
回复了 imBossa 创建的主题 Go 编程语言 关于 golang 在 mac 上的环境变量设置
用的是 GoLand 里的 terminal 吗?
听上去像,因为我在 GoLand 的 terminal 里修改过 GOPROXY 在重新打开 terminal 的时候的确也出现了被恢复原样的情况。
可能是 GoLand 的项目设置控制着 go env
2020-05-22 11:15:24 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@JRay

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

可直接通过指定图片进行操作啦
2020-05-12 09:31:01 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@JRay

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

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

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

不过这块儿我还在考虑该咋弄。。
直接上 opencv 的话。。会不会有点大材小用?
但的确后面可能需要 opencv 的 sift 算法,可以做到一张图在不同缩放的分辨率图片上找到“小图”
2020-05-12 09:11:01 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@JRay
🤪再增加个搜图功能,那就可以更好玩了
2020-05-12 09:01:00 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@troyl
appium/WebDriverAgent 和 前面同学提到的 macacajs/XCTestWD 本质上都是使用的苹果的测试框架哈

这就好比是其实大家都可以通过浏览器的开发者模式的 控制台 输入对应的 js 实现页面元素的点击 /输入等操作
但是却出现了 selenium,然后觉得真香😃
2020-05-12 08:57:01 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@magicdawn
可以简单的理解为 XCTestWD 就是 swift 版的 WDA ( WDA 使用的是 Objective-C )
Product Bundle Identifier 的修改是因为需要给 WDA-Runner (会通过 Xcode 安装到设备上)一个唯一的 🆔
修改的话,我是改成 com.个人域名.WebDriverAgentRunner (关于这个的修改,项目 README 里有安装的教程链接)

除了这个,还有苹果的 个人 /团队开发者账号 需要设置,个人账号是可以免费的,但是必须要联网验证证书哈
2020-05-11 17:54:20 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@stevenkang

😁 觉得好玩就行
2020-05-11 15:40:02 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@aydd2004

有 python 版本的话
2020-05-11 14:05:26 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@oubfgiar

其实厉害的还是 Facebook 那帮子人
得亏他们写出来了 WDA ( WebDriverAgent )
2020-05-11 13:46:39 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@oubfgiar

已经有好些个厂商做到了。。。
2020-05-11 13:45:35 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@yukiloh

简单粗暴的理解就是
gwda 发 HTTP 请求给 appium/WebDriverAgent ( forked from facebookarchive/WebDriverAgent )
WebDriverAgent 利用苹果提供的测试框架 XCTest.framework 进行设备的各种操作命令
2020-05-11 13:39:31 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@pmispig

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

⬇️ 弹窗自动处理 ⬇️
// 在连接设备的时候,追加一个 "true" 参数,用于在连接设备时,预设“允许 /拒绝”的选择器
// 允许: **/XCUIElementTypeButton[`label IN {'允许','好','仅在使用应用期间','暂不'}`]
// 拒绝: **/XCUIElementTypeButton[`label IN {'不允许','暂不'}`]
gwda.NewClient("http://localhost:8100", true)
// 👆 也可以选择不再连接设备时去预设选择器
// 通过下面两个函数也可以在创建 session 之前设置好想要设置的弹窗按钮选择器
// client.SetAcceptAlertButtonSelector()
// client.SetDismissAlertButtonSelector()

// 创建 session 时,设置当 Alert 出现时的默认处理行为( Accept/Dismiss )
// gwda.WDASessionAlertActionAccept
client.NewSession(
gwda.NewWDASessionCapability(bundleId).
SetDefaultAlertAction(gwda.WDASessionAlertActionAccept))


⬇️ 手动处理使用以下相关函数 ⬇️

// 获取弹窗的内容
session.AlertText()

// 在弹窗里的输入框输入内容
session.AlertSendKeys()

// 获取弹窗的全部按钮
session.AlertButtons()

// 点击指定“名称”的“yes”按钮
session.AlertAccept()

// 点击指定“名称”的“no”按钮
session.AlertDismiss()
2020-05-11 13:12:49 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@Leigg

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

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

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

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

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

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

// 回到主页
client.Homescreen()

// 上滑
session.SwipeUp()


项目的示例代码基本上都用到了这些基本命令哈
2020-05-11 12:53:23 +08:00
回复了 hongxi2200 创建的主题 Go 编程语言 使用 Golang 来控制你的 iOS 设备~
@Leigg `WDA` 支持的命令全都可以的哟 😬
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2332 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 16:02 · PVG 00:02 · LAX 08:02 · JFK 11:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.