app开发三种模式:native h5 hybird(混合)
针对不同场景使用不同的定位方式,android原生控件,web是b\s架构,两者在不同环境下运行,此需要进行上下文context切换,然后对h5页面元素定位操作
context
简介
在开发中说的上下文,android源码中的注释是:关于应用程序环境的全局信息的接口,这是一个抽象类,其实现由android系统提供,它允许访问特定于应用程序的资源和类,以及对应用程序级操作的调用,如启动活动、广播和接收意图等
android四大组件:Activity /Service/ BroadCast Recevicer/ Content provider。
通俗理解context为当前对象在程序中所处的环境,原生界面属于一个activity,也就是android的界面,但是访问内嵌的网页是属于网页环境,两者处于不同的环境
webview
是android系统提供的能显示网页的系统控件,它是一个特殊的view,同时它是一个viewgroup,可以有很多子view,android 4.4以上用的是google chromium作为系统webview的内核
h5环境搭建
pc谷歌浏览器和手机谷歌浏览器版本号一致
chromedriver与chrom浏览器版本号对应 http://npm.taobao.org/mirrors/chromedriver/或者http://chromedriver.storage.googleapis.com/index.html 下载地址 https://blog.csdn.net/weixin_42244754/article/details/81541894 chromdriver与chrom对应表
下载chromedriver存放路径appium安装路径:npm\node_modules/appium/node_modules/appium-chromedriver/chromedriver/win
操作步骤:
1、手机与电脑连接,开启usb调试模式(设备系统5.0以上)
2、电脑端和移动端必须安装chrome浏览器
3、app webdirver开启debug模式
4、在电脑端输入chrome://inspect/#drevices,进入调试模式
5、执行测试脚本
webview调试模式检查是否开启
1、在app内打开h5页面,在chrome://inspect/#devices 地址中,检查是否显示对应的webview,如没有,未开启调试模式
2、在自动化脚本中,进入对应用的h5页面,打印出当前的context,如果 一直显示antive app,则说明webview未开启
开启方式
在app中配置如下代码,在webview类中调用静态方法setwebcontentxdebuggingenabled
代码块:
if (Build.VERSION.SDK.INT >= Build.VESION.CODES.KITKAT){
WebView.setWebContentDebbugingEnabled(true):
}
原文:https://www.cnblogs.com/bibizhou/p/11940586.html