Webview相关测试(功能+性能)

目录

常见的3中定位方式:

 webview操作

        1.获取所有的webview的上下文句柄

                handles=driver.getContextHandles()        

        2.切换到想要的某个上下文句柄中

                driver.context(handles.toArray()[1].toString())

         3.获取所有的窗口句柄

                windows=driver.getWindowHandles()

        4.切换到对应的窗口中

                driver.switchTo().window(窗口句柄)

Webview性能


App在执行自动化测试的时候,有时候碰到webview组件,通过appium inpector或者SDK自带的uiautomatorviewer都无法定位webview组件中的元素,这个时候通常需要浏览器开发工具来协助定位.

常见的3中定位方式:

        前提:webview开关打开,可使用6.0的模拟器,6.0存在系统bug,默认是可以调试webview的.

        在应用中启用webview调试,需在webview类里调用静态方法:

                                                Webview.setWebContentsDebuggingEnableed.

        1.在脚本中通过driver.getPageSource方法将整个页面中的内容下载为一个html文件,然后打开该html文件,利用浏览器的开发者工具定位.

        2.模拟器中打开对应的webview页面,利用chrome devtools工具实现定位:在chrome浏览器中输入chrome://inspect,在devices中可以看到模拟器中同步过来的app页面,然后点击inspect,可以进入开发者调试工具实现定位,定位方式与常见的web页面定位方式一致.

        3.下载uc devtools工具,功能同chrome devtools,但是谷歌的工具,数据同步很慢,经常出现同步失败的情况,而国内的uc devtools则是正常访问,故推荐uc devtools.

        举例三连:

 webview操作

        1.获取所有的webview的上下文句柄

                handles=driver.getContextHandles()        

        2.切换到想要的某个上下文句柄中

                driver.context(handles.toArray()[1].toString())

         3.获取所有的窗口句柄

                windows=driver.getWindowHandles()

        4.切换到对应的窗口中

                driver.switchTo().window(窗口句柄)

        脚本中实现以上4步,我们就能对webview中的控件元素进行操作了(前提是环境没问题,包括chromedriver和webview的版本对应).

Webview性能

         使用chrome://inspect工具或者uc devtools查看App Webview组件的加载情况,整个加载过程同web页面的加载过程.

   页面说明及信息指标: 

        Disable cache:不加载缓存,从0载入.

        蓝色竖线:dom出现,我们可以做click或者sendkeys操作.

        红色竖线:图片等资源加载完成.代表CSS样式加载完毕.

        Queueing(正在排队):请求再队列中排队等待的时间.

        Stalled(已停止):在队列中,停止请求.

        Waiting(等待中TTFB):服务器响应时间.

        Content Download(下载内容):下载的时间

        以上也就解释了为何自动化脚本在定位时若使用xpath定位,有时候命名元素已经出现可点击了,仍然会报错抛出no such element的异常,因为控件仅仅是出现在dom中;如果使用css selector定位方式,等待样式等静态资源都加载完毕,往往不会报错.

猜你喜欢

转载自blog.csdn.net/qq_40132294/article/details/120896033