51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1595|回复: 1
打印 上一主题 下一主题

Appium - WebView测试(Android)

[复制链接]
  • TA的每日心情
    郁闷
    2022-8-29 14:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-2-23 13:31:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    现在App都是混合型的,有原生的也包含WebView的,appium测试的时候就需要在原生和WebView
    之间切换才能完成测试。

    1. 查看所有context

    查看当前所有的窗口
    1. Set<String> contextNames = driver.getContextHandles();  
    2. System.print(contextNames);
    复制代码
    结果包含目前所有打开的app, 例如我打开了ES,我的被测应用,还有另外一个应用,
    1. [NATIVE_APP, WEBVIEW_com.test.android, WEBVIEW_com.estrongs.android.pop, WEBVIEW_com.xxxxx.sjj]  
    复制代码
    NATIVE_APP就是我的被测应用原生界面

    WEBVIEW_com.test.android 是我的被测应用打开的WebView

    另外两个一个是ES, 一个其他的应用(混合型的)



    2.切换到WebView

    通过上面方法获得当前的所有context

    我们可以通过context方法切换到指定的应用
    1. <pre name="code" class="java">driver.context("WEBVIEW_com.test.android");  
    2. driver.findElementByID("wd");  
    复制代码
    切换完成后就可以像测试web应用一样测试了,所有的定位和web相同。
    3. 切换到NativeApp

    测试完web应用,需要操作原生应用的时候就需要切换回NATIVE_APP

    我们可以通过context方法切换到原生应用
    1. <pre name="code" class="java">driver.context("NATIVE_APP");  
    复制代码
    这样之后的操作就都是原生应用的操作了
    4. Demo
    1.    /**
    2.      * Switch to NATIVE_APP or WEBVIEW
    3.      * @param sWindow window name
    4.      */  
    5.     private void switchToWindow(String sWindow) {  
    6.         LogManager.getLogger(this.getClass()).info("Swith to window: " + sWindow);  
    7.         Set<String> contextNames = driver.getContextHandles();  
    8.         LogManager.getLogger(this.getClass()).info("Exists windows: " + contextNames.toString());  
    9.         for (String contextName : contextNames) {  
    10.             if (contextName.contains(sWindow)) {  
    11.                 driver.context(contextName);  
    12.                 break;  
    13.             }  
    14.         }  
    15.     }  
    16.   
    17.   
    18. switchToWindow("WEBVIEW_com.test.android");  
    19. driver.findElementByID("wd").sendKeys("test");  
    20. driver.findElementByID("sub").click();  
    21. switchToWindow("NATIVE_APP");  
    复制代码



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-10 21:47 , Processed in 0.063951 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表