这个能力属于 macaca 安卓驱动 desiredcapability 的能力, 为了解决安装过程中 授权页面窗口定制化, 阻挡了安装使用而设计的. 具体源码要参考 uiautomator 里面, 唤起安卓测试驱动以后的一段代码. 通过 NoSmoke -> macaca-android -> uiautomator
你安装的 apk 文件使用了.so 文件, 你使用的安卓模拟器架构与 .so 支持的模拟器架构不符 https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk. 适配一下你的模拟器架构
loginAccount 这层只是用来语义化 特定元素的,没有特别数据结构上的含义
目前模拟器比较稳定
试试现在的代码, 使用模拟器
麻烦试试最新的代码, 之前驱动有些不稳定
抱歉, 公司业务太忙, 还要搞 nosmoke, 会尽快看的 请谅解
没错, 需要设置时间,最大深度,每个页面对多元素数量, 并且对元素类型进行筛选, 可以有效的提高爬行效率 减少运算成本
目前做的 深度优先.
欢迎 contribute 以及提 issue.
有兴趣的话 欢迎一起做这个项目,窗口识别的问题, 目前通过实现一个窗口 digest 的方式去比对, 不过生成 digest 的函数现在也暴露出来, 可以自己定制, 比如说支持模糊度识别等等
要自己设定操作了. 目前还没有支持到这个功能上来. 不过可以通过复写 performAction 这个函数实现
恩 不是整个 tree, 是这个里面有效的信息模型
需要检查一下环境,以及使用的 yml 详细配置, 看下有没有具体的 log. 应该是环境问题
具体原因具体分析了, 你也可以吧模拟器运行的 apk 或者 .app 给我我试试
需要缓存已经爬取过的页面 ,下一次到这个页面的时候只点击没有触发的 element
谢谢前辈鼓励
好的
后续计划配置几个比较有名的 app , 测试一下爬行效果
互相学习, 欢迎 contribute 啊
设计的时候有考虑这个 case, 比如说对于 tabview 这样的 master - detail 视窗结构, 你可以在 config 中配置什么样的 element type 是一个 上层页面控件, 这样扫描的时候会把一个页面分成两层 node , controller 这层在上面一个 node , 对应每一个 tab 的子视窗是一个单独的 node , 完成子视窗的遍历以后, 就会选取 tab bar 本身 进行遍历
因为涉及到 界面分析的操作,还有页面比对,会慢一些, 但不影响使用
遍历的一个关键点是 区分不同的视觉窗口,对于 UI 变动频率高的页面, 可以使用钩子里的 checkDigest 方法用你自己的实现区分页面