Java
版本?
没计划....
目前只打算用
Golang
造点小轮子....
还是有几个 TODO
没完成...
不过完全不影响现有的全部功能
可以 自定义手势操作 (TouchActions
) 的呀
拖拽动作拆解下来, 其实就是 第一次按住不松开, 然后进行移动, 结束移动后再松开
我也用 Golang
实现了 WDA
的接口
拖拽手势
的实现用在了 手势密码
上
👇 这里有当时的实现代码
https://github.com/electricbubble/gwda-ext-opencv/blob/7052a95b7dbc8420ece25457965916f9c85cb1fa/gesture.go#L26-L40
func (dExt *DriverExt) GesturePassword(pathname string, password ...int) (err error) {
var rects []image.Rectangle
if rects, err = dExt.FindAllImageRect(pathname); err != nil {
return err
}
sort.Slice(rects, func(i, j int) bool {
if rects[i].Min.Y < rects[j].Min.Y {
return true
} else if rects[i].Min.Y == rects[j].Min.Y {
if rects[i].Min.X < rects[j].Min.X {
return true
}
}
return false
})
touchActions := gwda.NewTouchActions(len(password)*2 + 1)
for i := range password {
x, y, width, height := dExt.MappingToRectInUIKit(rects[password[i]])
x = x + width*0.5
y = y + height*0.5
if i == 0 {
touchActions.Press(gwda.NewTouchActionPress().WithXYFloat(x, y)).
Wait(0.2)
} else {
touchActions.MoveTo(gwda.NewTouchActionMoveTo().WithXYFloat(x, y)).
Wait(0.2)
}
}
touchActions.Release()
return dExt.PerformTouchActions(touchActions)
}
更新了 gwda 的扩展库 gwda-ext-opencv
可直接通过指定图片进行操作啦
我有个粗暴且不成熟的建议。。启动前先暂时禁用掉其他网卡。。。等启动好后再。。。
🤔 不应该呀,你是怎么创建 session
的?
import wda
c = wda.Client()
s = c.session('com.apple.Preferences')
这么操作去创建 session
?
facebook-wda/examples 🌚 我偷懒从这里复制来的代码。。如果不能运行。。自己看着改下哈。。
😂 因为这个 issue#323
结果 appium 的大佬,直接重构了。。
- return _activeSession ?: [FBSession initWithApplication:nil];
+ return _activeSession;
我猜是因为这段代码导致的。。
不过也只是影响到第一次访问 localhost:8100/status 是 null
当创建过 session
后就可以正常有一个值了
🥳 多亏大佬的文章,才能看明白 WDA
的部分代码
这
Objective-C
看久了。。还莫名觉得有点迷之"美感"...
🥳 嘻嘻,徽章加上去咯
😳如果你发现 当前屏幕第一个 App/文件夹 的文本内容: “自带”文件夹
这明显应该是 计算器
🙃首先这不是 gwda 的代码问题。。这是一个在 iPhone 6s (11.4.1)
可复现的神奇现象
并且还发现了另一种 “现象”,指定元素明明可以触发 3D Touch
并且元素绝对 可见
,执行却报错并提示元素 不可见
element not visible: The element '"计算器" Icon' is not visible on the screen and thus is not interactable
不过不用担心,可以使用
session.ForceTouch
避免这种情况
暂时没去细究是 WDA
的问题还是这个 iOS
系统版本的问题。。
iPhone X (13.4.1)
已知没这问题。。