Android Webview的测试

摘要:
1.查看所有当前窗口:Setcontexts=驱动程序。getContextHandles();System.out。println(上下文);打印所有当前窗口设置<字符串>contextNames=驱动程序。getContextHandles();for(StringcontextName:contextNames){

1.查看当前的所有窗口:

        Set contexts= driver.getContextHandles();

        System.out.println(contexts);

打印出当前所有的窗口

Set<String> contextNames = driver.getContextHandles();

            for (String contextName : contextNames) {

                 print(contextName);

                 if (contextName.contains("WEBVIEW")) {

                          driver.context(contextName);

}

}

2.切换到webview

        for(int i=0;i<=contexts.size();i++)

        {   

        String s=(String) contexts.toArray()[i];

        if(s.contains("WEBVIEW"))

        {

             System.out.println(s);

             System.out.println("准备切换到webview");

             //driver.context("s"); // set context to WEBVIEW_1

             driver.switchTo().window(s);

          }

      }

多个webview的情况:

 选择最终打开的webview即可,switch to 到目标windowsHandle即可

Set<StringcontextNames driver.getContextHandles();

         for (String contextName contextNames) {

                       print(contextName);

                       if (contextName.contains("com.kascend.chushou")) {

                                driver.context(contextName);

                                Thread.sleep(500);

                                Set<StringwindowsHandles driver.getWindowHandles();

                                for (String windowsHandle windowsHandles{

                                          print("windowsHandle名: " windowsHandle);

                                          driver.switchTo().window(windowsHandle);

                   }

              }

}

3.切换回主程序:

        driver.context("NATIVE_APP");

获取不到webview的原因:

1、系统不是 4.4 及以上(4.4以下的 webview 没有使用 chrome 内核,appium 只有在 selendroid 模式下支持)
2、使用的不是系统的 webview 。webview 内核可以有很多的,而且很多应用(例如微信)出于兼容性或者其他原因会使用第三方内核(微信用的是腾讯自家的 QQ 浏览器内核)。但 appium 目前只支持系统内置的 webview 。
3、应用没有开启 webview 的 debug 选项。在模拟器上由于使用的是开发版系统,所以默认是打开了 debug 的,但真机除了亲儿子基本默认都关闭,需要增加代码来打开。详细可以看官方文档:https://developer.chrome.com/devtools/docs/remote-debugging#debugging-webviews

免责声明:文章转载自《Android Webview的测试》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇10 天精通Project 项目管理:从菜鸟到实战高手PyCharm2020.1激活破解教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android中实现TCP和UDP传输实例

TCP和UDP在网络传输中非常重要,在Android开发中同样重要。 首先我们来看一下什么是TCP和UDP。 什么是TCP? TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specifi...

Android合并文件的三种方式代码

amr格式的文件头是6字节,在进行文件合并的时候要减去除第一个文件以外的其他文件的文件头。下面介绍合并文件的几种方式,并通过合并amr文件来举例介绍合并文件的具体流程。 注意:不同文件的文件头是不一样的,所以在合并的时候根据不同文件相应的减去合并文件的文件头。具体你可以学习Android开发教程。 步骤一:获取要合并的文件及创建合并后保存的文件 /**用于...

安卓架构

1、架构图直观 下面这张图展示了Android系统的主要组成部分: 图1、Android系统架构(来源于:android sdk) 可以很明显看出,Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分将详细...

理解Android编译命令(转)

一、引言 关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下。先看下面几条指令,相信编译过Android源码的人都再熟悉不过的。 source setenv.sh lunch make -j12 记得最初刚接触Android时,同事告诉我用上面的指令就可以编译Android源码,指令虽短但过几天就记不全或者忘记...

Android开发中java与javascript交互:PhoneGap插件vs addJavascriptInterface

1.前言 在《用PhoneGap+jQueryMobile开发Android应用实例》中,我们讲到PhoneGap(以下称Cordova)开发环境的搭建,以及如何整合出一个基本的Android应用框架(并给出了范例代码)。于是乎,我们便开始日夜兼程,披星戴月的炮制我们的第一个手机应用了。 但实际上,除了常见的API调用规范(有且仅有自查手册一途)引起的问题...

在eclipse中添加android ADT

对于程序开发的学者来说,eclipse并不陌生,它为我们提供了一个非常广阔的平台来开发程序。同样我们也可以用它来开发android程序。 但是在eclipse中并不能直接开发android程序,需要我们安装一个ADT插件。下面就介绍ADT插件的安装。 第一步,添加ADT 打开eclipse,进入工作界面后点击菜单栏的help,选择install new s...