iOS 测试 iOS 中实现 back 的方案讨论

wangst · 2016年10月27日 · 最后由 wangst 回复于 2016年10月30日 · 2734 次阅读

1.问题:
在编写 iOS 自动化的过程中,在一些页面,想实现 back 操作(即类似于 Android 端的点击 back 物理键后效果)。

2.已知方案:
查找页面中在 Navigationbar 或者 Toolbar 或者 TabBar 上面的返回按钮。(通过 xpath 或者 WebElement 的 name 属性或者 accessbilityid 定位元素)

当前在实际编写中,遇到的难点:
xpath 是不停变动的,不能准确定位 back;WebElement 的 name 属性没有值;没有设置 accessbilityid。在这种情况下,是否有其他方案可以实现 back 操作?我想的一个办法是,通过定位 back 元素所在的 position 来实现。
不知道大伙还有没有其他方案?或者经验介绍? (除了让开发完善 accessbilityid 或者 name 属性外;即不改动源码的情况下)

谢谢!

@monkey @seveniruby @Lihuazhang @Anikikun @quqing @vigossjjj 各位大神有遇到过此类问题?或者有解决方案吗?

共收到 6 条回复 时间 点赞

你可以找找 API, IOS 的自动化我不清楚。但是在 PC 上,通过 webdriver 的 API 可以做。如下:

WebDriverRunner.getWebDriver().navigate().back();

#1 楼 @neyo 恩,坐标是一个方案。
谢谢你提供的这个思路。

#2 楼 @ycwdaaaa 这样的话,我看这个的意思,应该是模拟 PC 上的 back,即 navigate 中的 back。在 iOS 中,的确很多 APP 都会在导航栏 navigationbar 上设置 back,但是我现在要处理的这个 APP,没有通过导航栏的方式实现 back。

谢谢你提供的这个思路。

参考 appcrawler 的设计. webdriver 默认的 back 是不起作用的. 只能点击 navigatorBar 里面的 back 按键. XPath 写的好 + 一个好的设计 就没事.

#5 楼 @seveniruby 恩,我去参考一下 appcrawler

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