1、H5介绍
1.1 H5页面元素定位问题
在混合开发的APP中,经常会有内嵌的H5页面,那么这些H5页面元素该如何定位操作呢?(内嵌的H5页面在使用Webview定位时,只能定位到整个内嵌页面,不能定位到具体元素)
1.2 解决思路
这对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面webview定位都是基于Android原生控件进行元素定位,而Web网页是单独的b/s架构,两者运行的环境不同因此需要进行上下文(context)切换,然后对H5页面元素进行定位操作。
1.3 context(上下文)
关于应用程序环境的全局信息的接口。这是一个抽象类,其实现由Android系统提供。它允许访问特定应用程序的资源和类,以及对应程序级操作的调用,如启动活动、广播和接受意图等
通俗理解,在程序中context我们理解为当前对象在程序中所处的一个环境。比如前面提到的App一个界面属于Activity类型,也就是Android界面环境,但是当访问内嵌的网页是属于另外一个环境,两者处于不同的一个环境
1.4 Webview
- 内嵌的H5页面是通过Webview系统控件来显示的
- Webview是Android系统提供能够显示网页的系统控件,它是一个特殊的view,同时也是一个viewGrop,可以有很多其他子view
- 在android4.4以下(不包含4.4)系统WebView底层实现