H5混合应用测试流程

什么是混合应用?
原生控件+html.

一,识别HTML

识别被测元素为原生控件中的HTML内容

如何简单识别App中的页面为html页面?
方法一:开启手机中开发者选项-绘图-显示布局边界,有对应框住的内容为原生内容,H5相关内容不会被框.
方法二:通过定位工具可看到class=android.webkit.WebView

二,确认开启webview的调试模式

默认不开启,如果是公司产品有源码,可让开发加上以下代码重新编译打包,

if (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) {
 WebView.setWebContentsDebuggingEnabled(true);}	

如果没有源码的产品可参考相关文章.

三,得到当前所有的contexts

切换之前需要获得所有上下文contexts

driver.contexts

context上下文,类似是用户和操作系统交互的过程打开打窗口,原生控件的context为NATIVE_APP.获取要进入的webview .

四,切换context

driver.switch_to.context("目标context")


五,驱动程序确定

chromedriver需要对应安卓系统的webview版本.
如何确定webview版本?
方法一,工具:uc-devtools,动态获取,获取到webview的数字为驱动的版本.
使用方法:https://www.cnblogs.com/hsmwm/p/15015914.html
方法二,在chrome浏览器中输入:chrome://inspect/#devices
方法三,appium server中日志显示,appium自带一个chromedriver,如果报错会告知不匹配,也会告知具体版本.

如何在代码中指定chromedriver?
在启动参数中可以自定义chromedriver的版本的路径,chromedriverExecutableDir:路径地址.
在本地新建文件夹,其中可放入不同版本chromedriver来应对不同安卓系统版本.

六,元素定位并操作.

webview中定位可使用uc-devtools工具,识别到webview版本点inspect进入,同web元素定位.

原生定位方式:
https://www.cnblogs.com/hsmwm/p/14945017.html
原生定位方法:
https://www.cnblogs.com/hsmwm/p/14968898.html

posted @ 2021-07-15 16:04  看书  阅读(82)  评论(0编辑  收藏  举报