Appium appium 定位 hybird 的方法

haojie · 2016年08月29日 · 最后由 longmazhanfeng 回复于 2016年08月30日 · 2463 次阅读

我最近遇到一个问题:前一段时间用 appium 测试 hybirdapp 都是用 xpath 进行测试的,测试的时候发现响应普遍比较慢,后来在网上查询了相关资料,说 xpath 定位 ,每次定位都要便利一个界面的 xpth,然后再进行相关操作。并且每次 hybird 有跟新或者页面稍微变化,就有大片的路径变化,原来的测试代码就完全废弃。所以我试了 browser.elementByName;browser.elementById 等其他方法,发现会比 xpath 好用很多。
但是现在遇到一个问题:hybirdapp 是没有类似于 xml 这样的布局文件的,界面都是直接写出来的,没发直接设置 id 这个属性。
所以想请问大家这个问题有没有比较好的解决方案,另外公司的混合开发平台是 appcelerator,测试脚本都是用 js 写的。
或者是这样 hybirdapp 怎么样给组件赋上 resource-id(直接在组件里添加 id 代表了一个属性,并且 appium inspector 解析不到这个 id。

共收到 11 条回复 时间 点赞

等解决方案

#1 楼 @heminwon 啥意思啊

用 chrome 浏览器 chrome://inspect 可以远程调试 Android 的 webview,html 里面应该是有 id 等属性的吧

你用的是 Titanium ?

#4 楼 @chenhengjie123 是的,不知道怎么设置唯一标志符

遇到同样的问题

#7 楼 @longmazhanfeng 有解决方法么,我发现用 appcelerator 写的应用,除了 xpath 其他的定位方式都有问题。

#8 楼 @qumoy0315 ☺ 虽然你说的 appcelerator 没接触过,我们目前的 hybirdapp 都是用 xpath 定位。。。如果嵌套有 WebView 好像可以用 switch to context 切换到 Web 状态用 HTML 页面里的 findelementbyid 这些。不过如果操作涉及到和 Android Native 的一些交互,感觉只能用 Uiautomatorviewer 中看到的那些属性来定位了,不然即使切换上下文后操作元素也是无响应的

haojie #10 · 2016年08月30日 Author

#9 楼 @longmazhanfeng 同感,其实这个 ide 封装了 android 和 ios 的 api,写一份代码就可以同时在 android 和 ios 上实现。你们的 hybird 现在都用什么集成软件啊。

#10 楼 @qumoy0315 这个暂时不清楚还。。还在学习自动化测试的路上。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册