Appium 转发 appium 问题

国文 · 2014年06月11日 · 最后由 Aya 回复于 2016年11月30日 · 1896 次阅读
本帖已被设为精华帖!

关于通过 appium 操作 android/ios app webview 里的 html 元素
(1)android/IOS webview 内的 html 元素可否通过类似 xpath 方式寻址?
(2)因为 android/IOS 的 webview 的实现方式不一样,android webview 渲染后无内部控件,而 IOS webview 加载 html,html element 做为 IOS 控件存在于 IOS 的 element tree 中(webview[0].buttons()[1] 这种),所以我的问题是 android/IOS webview 内部使用 xpath 是否一致?

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

第一个可以

对于 webview 目前有 2 中形式. 一种是 webapp, 就是在 webview 中直接访问网站来展现.
还有一种是混合型的, webview 加载本地 html 代码.

我也想了解下各个框架对这两种方式的支持程度, 据说 robotium 是不支持混合型的.
@lihuazhang @monkey @ 喜力

#2 楼 @seveniruby robotium 本身在后面的发展中(比如 5.0.1)增加了 findelement 这样的 api,不过我源码还没有来得及看,不过从使用下来来看,感觉依然不是很稳定。

剩下别的感觉(除了 appium),没有感觉有啥框架有对于 webview 支持比较好的。

很多框架还是使用 robotium 比较早的 jar,所以都没有 webview 的扩展。

当然我自己对于 webview 倒是有别的一种看法。就是 webview 没有太多必要一定要 ui automation 去看,更多的就当一个纯的 html 测试逻辑,可以自动化,ut 或者别的。然后最终 app 上只不过是一种 webkit 兼容或者显示而已。。= =

#3 楼 @monkey 嗯 我也同意把 html 拉出来 先测试。 不过因为工作方式不一样,还是有差别的。

@oscarxie xpath 在 android,ios 的 hybrid app 中使用是一致的!

复杂的 hybrid app,native 整合度比较高的,很难单独拉出 html 部分单测或者做 ui ta. 也确实没有太多可行的框架,appium 是极少数可行的框架!

这是问题其实是我问的,楼主和我讨论后把问题发到这里,非常感谢 oscarxie。

@seveniruby robotium 可以加载本地 html,但我不明白你的混合型指什么?android 的 webview 本身就支持访问网站和加载本地。

@monkey robotium 对 webview 支持是很好的,可以扩展,因为它是向 webview 注 js,基本所有操作都可以实现。
@monkey 是否考虑 UI automation 测试 webview 的内容还要看场景,有 2 种情况:

  1. app 是浏览器(基于 webview 扩展的恶心浏览器),那么里面会加载很多 plugins,在不同的操作中有不同的响应,我的测试目的之一是测试相应。
  2. android webview 加载 html 后,可以 callback android 函数,如果要测试被 callback android 函数流程也需要对 webview 进行测试。 当然,这些都能通过单元测试进行,不一定要 UI 级别。

@lius 这里的 xpath 指的是,在 webview 中,定位 html 元素的 xpath,大概看了下 ios 的 webview 渲染后的 elementtrees,和 html 的结构都不一样了,另外,我在 UI Automation 中也没找到可以 xpath 定位的方式,以及 webview 注入 js 的方式,所以我感觉,ios 应该不可能是使用 xpath 定位 webview 内的 html 元素。

在 windows 上怎么样查看 Android app 的 xpath?用 UI automation 吗?

请问 iOS 中的 web view 内的 HTML 元素如何定位呢?有大神了解的指导一二吗,已经被困扰很久了

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