恩, 不过这个提交需要修改他们的 android 代码, 我试试看看能不能跟百度 cafe 集成
我 win8 是 ok 的
#6 楼 @mingway_hu 试过了, 感觉顶栏过于秘籍了, 还是先放到发帖的下面试试吧
#1 楼 @mingway_hu @lihuazhang 另外在单个帖子的浏览里面, 貌似右边栏的内容还很空, 也可以加点内容上去.
#3 楼 @jakewendao 谢谢, 我们已经有 ios 客户端了 android 的还在观察是否需要做, 目前的开源的客户端是有一些兼容性的问题的, 所以还在等时机. 我们的论坛是和 ruby-china 的代码一样, 客户端也是跟他们一致.
多谢反馈, 好建议, 我一会优化下
#1 楼 @xiaocong 我提取了 uiautomator 的部分代码进行编译, 我想单独编译出来 uiautomator.jar, 而不是整个 android 系统. 但是在 EventsCommand.java 中发现了一个很奇怪的导入
import com.android.uiautomator.core.UiAutomationShellWrapper;
我一直没找到整个类是从什么地方声明的. 貌似在 uiautomator 的代码里面是没有这个定义的.
但是我搜索 google 的 android 代码, 却发现了这个文件
uiautomator/library/testrunner-src/com/android/uiautomator/core/UiAutomationShellWrapper.java
这个文件并没有完整的对外发布出来, 貌似只在 android 的 git 源中.
非得编译整个 android 系统吗?
#3 楼 @lizhenghuan 开玩笑了 你写还不是分分钟的事情
#27 楼 @spikeshen 我有这个逻辑, 会判断已经点击过的元素. 已经实现了. @vigossjjj 是否值得点击的元素, 需要有个很全面的规则, 比如上层的 linear 或者 frame 需要可被点击, 内部的元素就算属性是不可点击 其实也是可以点击的.
#23 楼 @spikeshen 是的 这块需要有个复杂的规则来找到真正可独立点击的连接
#24 楼 @chuyaoyao 解决了没? 什么原因
#12 楼 @vigossjjj 有些情况是必须前面输入一个查询词语 后面才能查询 不过这种通过 intent 也可以做到 我关注黑盒 黑盒貌似也可以通过 am 实现界面调用 只不过传参数方面就不行了 因为黑盒不会知道具体的参数 除非通过底层拦截
#9 楼 @vigossjjj 一些交互如何解决那, 如果用户输入的验证, 或者对于一些需要联网展现的 ListView?
#7 楼 @vigossjjj 看来我抛砖引玉的思路达到了, 你这个做法很飘逸哦. 不过在没有上下文的情况, 直接跳进某些 activity 会不会有问题? 比如缺少对应的数据导致里面的展现出现差异.
另外, 这种纯黑盒的方式也不太好, 通过插桩可以获得更多的建模数据. 也是个缺点, 还需要继续想办法. 我倒是挺喜欢百度 Cafe 的做法.使用 hook 来解决
#1 楼 @qddegtya @vigossjjj 重要的是算法,点击这个没什么, 点击是入口, 现在只是纯点击, 以后加了规则, 就可以支持更多操作了, 比如滑动, 自动输入. 目前还得加上回环算法才算靠谱 所以除了怕嘲笑, 我也觉得没什么可保留的 , 就贴出来给大家参考下.
大家有好的思路, 也不放 show 下, 欢迎指教
#20 楼 @chuyaoyao 这个只能 debug 了, 我们没有你的环境, 只能你自己去追踪下 api 了.
理论上是支持 xpath 的. 可能是其他的问题.
ps: 我最近在试验一个工具, 可以辅助使用 appium 的人定位问题, 不过暂时还得等
#17 楼 @chuyaoyao 4.3 以上的 android 是支持 id 定位的. 从官方的代码中, 还发现了 appium 打算支持 css. 不过我没没有在 4.3 上正式测试过. appium 的定位和 webdriver 类似, 如果你的元素复杂, 就得考虑 page object 模式了
#15 楼 @chuyaoyao 4.1.2 版本的话, appium 是支持, 需要修改下他们的代码, 他们代码中限制了 api 为 17 以上, 其实 api16 也是支持的. 所以你可以不需要依赖 selendroid
#6 楼 @lihuazhang 其实是 nodejs 先解析为一个 json 结构, 然后把结构传给 uiautomator 的封装, 代码在
https://github.com/appium/appium/blob/3448af6ee8e839c982a239613ee3b0c465357148/lib/xpath.js
这种解析方式不太好, 主要是 uiautomator 的底层有自己的查询方法, 需要把 xpath 转换为它的查询语法. 我觉得可以换个方法去实现. 比如先遍历出来所有的元素, 保存为 xml, 然后通过 xpath 来确定对应的是哪个节点, 然后根据 xml 中的对应节点去找真正的节点. 不过这样实现的话, uiautomator 的速度又太差, 遍历需要花费很大的时间.
我记得知平软件那边有个 iquery 项目, 做到了 jquery 方式的查询支持, 用的是 antlr 语法解析器库
#12 楼 @chuyaoyao 也不是, 两套方案只要都支持 XPATH 标准就可以了. selendroid 不支持的事情, 需要追查下.有可能是它的 bug, 也可能是有其他的原因. 这两个方案是不同的组织在维护.
#1 楼 @lihuazhang 恩 运行, 截图, report 都不错.