自动化测试操作的流程基本都是一样的:
1、搭建环境
2、查找元素
3、断言
4、执行
5、解析报告
之前都是在做安卓原生应用的自动化测试,对于webview的测试基本不了解,在第一次接触的时候还是遇到麻烦
问题一、如何判断自己的应用是原生应用还是webview?
通过边界布局判断,(开发者选项----显示边界布局),如果页面是一整块的布局,说明是H5实现,如果有很多控件显示则是原生的
问题二、在切换页面的时候需要知道webview的名字,如何获取呢?
appium有一个函数contexts是获取应用的webview的名字的,但是我在使用的时候只显示了NATIVE_APP,这就让我有些迷惑了,最后查找资料才知道,如果要显示所有的webview就需要在代码中添加一行代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true);}
问题三、如何切换到webview页面进行测试?
切换到webview
driver.switch_to.context(u'WEBVIEW_com.cvte.webviewtest')
切换回来
driver.switch_to.context(u'NATIVE_APP')
在做webview的自动化测试的时候,要使用debug版本的,因为暂时没有这样的应用app,所以也就没办法验证自己的疑问了,唉!!!!
获取H5页面元素属性的方法:
在 chrome地址栏输入chrome://inspect/#devices
打开应用,如果手机上安装的应用是debug版本的,就会显示这样的页面:
点击inspect,将会打开一个新的浏览器页面
之后查找元素的时候就跟在网页的操作一样了
这个找元素的方式我只在debug版本的测试使用过,release版本的应用是什么样的就不知道了