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定位方式,等待样式等静态资源都加载完毕,往往不会报错.

要在Android平台上集成HTML5+ SDK,可以使用WebView来加载HTML5页面。WebViewAndroid系统提供的视图控件,可以嵌入到Android应用程序中,用于显示Web页面。 下面是在Android平台上以WebView方式集成HTML5+ SDK的步骤: 1. 在Android Studio中创建一个新项目。 2. 在项目中添加HTML5+ SDK库文件。可以将库文件作为本地库或通过Maven仓库添加。 3. 在布局文件中添加一个WebView控件。 4. 在Java代码中获取WebView控件的引用,并为其设置WebViewClient。 ``` WebView webView = findViewById(R.id.webView); webView.setWebViewClient(new WebViewClient()); ``` 5. 加载HTML5页面。可以使用WebView的loadUrl方法加载本地HTML文件或远程URL。 ``` webView.loadUrl("file:///android_asset/index.html"); ``` 6. 在HTML5页面中添加HTML5+ SDK相关的JS代码。可以从HTML5+ SDK的官方网站上获取相关的JS文件。 7. 在Java代码中调用WebView的addJavascriptInterface方法来注册Java对象,以便在HTML5+ SDK的JS代码中调用Java方法。 ``` webView.addJavascriptInterface(new JSInterface(), "jsInterface"); ``` 8. 在HTML5+ SDK的JS代码中调用Java方法来实现与Android平台的交互。 ``` window.jsInterface.showToast("Hello, world!"); ``` 这些就是在Android平台上以WebView方式集成HTML5+ SDK的基本步骤。需要注意的是,HTML5+ SDK的功能取决于设备的硬件性能和操作系统版本,因此需要在测试时仔细考虑这些因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chuntian_tester

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值