Appium iOS UI自动化之web页面操作(Xcode15,iOS17,真机)


环境

macOS: 13.6.6
Xcode: 15.2
iPhone: 17.2.1
Appium: 2.5.4

公司APP里包含了web页面,所以接下来就是攻克web页面操作的难题。


一、让iOS开发开启web inspector

首先需要说明的是,如果需要查看APP应用里的web页面,那么iOS16.4以上或者macOS13.3以上,需要iOS开发在APP里做一项设置,官方文档

InAppWebViewSettings.isInspectable 设置为 true

只有这样,Mac系统中的Safari才能事实inspectAPP里web页面的元素

二、被测设备开启web UI自动化权限

在‘设置->Safari浏览器->高级’中,勾选远程自动化

三、Mac的Safari浏览器开启developer标签

打开Safari浏览器,点击设置,选择高级,在最底部有一个“Show features for web developers”:
在这里插入图片描述

勾选之后会显示Develop和developer标签:
在这里插入图片描述

这时,手机打开被测APP,进入到web页面,点击Mac中Safari浏览器的develop标签,就可以找到连接设备正在查看的web页面:
在这里插入图片描述
点击该页面链接,就可以打开该页面的html元素页面:
在这里插入图片描述

四、Appium client操作web元素

与安卓不一样,iOS操作web元素,实际上比较简单,直接可以使用web页面的xpath操作,但是在操作web元素之前,必须要确定的是,这个元素是原生的还是web的。

官方对于切换context的代码是这样的,这是官网文档

# assuming we have an initialized `driver` object for an app

# switch to webview
webview = driver.contexts.last
driver.switch_to.context(webview)

# do some webby stuff
driver.find_element(By.CSS, ".green_button").click

# switch back to native view
driver.switch_to.context(driver.contexts.first)

# do more native testing if we want

driver.quit()

我想补充一句,获取最新context的方法,用last不得行,我用的:

webview = driver.contexts[-1]

总结

这篇文章主要是强调一下iOS16.4以上的设备,需要被测APP中设置了web页可被inspect,然后才能进行自动化。这个我在网上花了好些时间才搞明白,所以写下来。

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值