Appium - WebView测试(Android)

Appium - WebView测试

作者: Max.Bai

时间: 2015/07

Appium - WebView测试(Android)

现在App都是混合型的,有原生的也包含WebView的,appium测试的时候就需要在原生和WebView之间切换才能完成测试。

1. 查看所有context

查看当前所有的窗口

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

结果包含目前所有打开的app, 例如我打开了ES,我的被测应用,还有另外一个应用,

[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方法切换到指定的应用

<pre name="code" class="java">driver.context("WEBVIEW_com.test.android");
driver.findElementByID("wd");

切换完成后就可以像测试web应用一样测试了,所有的定位和web相同。

3. 切换到NativeApp

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

我们可以通过context方法切换到原生应用

<pre name="code" class="java">driver.context("NATIVE_APP");

这样之后的操作就都是原生应用的操作了

4. Demo

	/**
	 * Switch to NATIVE_APP or WEBVIEW
	 * @param sWindow window name
	 */
	private void switchToWindow(String sWindow) {
		LogManager.getLogger(this.getClass()).info("Swith to window: " + sWindow);
		Set<String> contextNames = driver.getContextHandles();
		LogManager.getLogger(this.getClass()).info("Exists windows: " + contextNames.toString());
		for (String contextName : contextNames) {
			if (contextName.contains(sWindow)) {
				driver.context(contextName);
				break;
			}
		}
	}

switchToWindow("WEBVIEW_com.test.android");
switchToWindow("NATIVE_APP");

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-02 21:01:12

Appium - WebView测试(Android)的相关文章

【亲测】Appium测试Android混合应用时,第二次切换到WebView失败

要解决的问题:Appium测试Android混合应用时,第二次切换到WebView时失败 原因分析:在用Appium测试Android混合应用时,当程序第一次切换到WebView时,可以正常进行自动化测试.可是当程序第二次切换到WebView时,Appium会自动找到到第一次打开的Html页面,那么这时Appium就无法定位我们第二次打开的Html页面中的元素. Appium第一次切换到Html页面时,会新生成一个Chromedriver:当第二次切换到Html时,会使用已经存在的Chromed

Appium - WebView測试(Android)

Appium - WebView測试 作者: Max.Bai 时间: 2015/07 Appium - WebView測试(Android) 如今App都是混合型的.有原生的也包括WebView的,appium測试的时候就须要在原生和WebView之间切换才干完毕測试. 1. 查看全部context 查看当前全部的窗体 Set<String> contextNames = driver.getContextHandles(); System.print(contextNames); 结果包括眼

Appium+Robotframework实现Android应用的自动化测试-4:AppiumLibrary介绍和安装

Appium是个好东东,Android,iOS都支持,并且居然RobotFramework也支持Appium了,这就是本文要介绍的AppiumLibrary. 通过前面的文章Appium+Robotframework实现手机应用的自动化测试-1:Appium简介,大家知道可以使用多种语言来写Appium的测试脚本,但如果从编写效率和学习曲线上来说,当然是用如RobotFramework的关键字的方式最为简单,所以AppiumLibrary就出现了,从Appium官网可知最新的版本是1.2.5,在

关于指令测试android手机

*#*#4636#*#*:这个指令是用于测试现在大部分安卓手机的,山寨的手机没有此功能. 当在手机拨号键盘输入此字符串后,会出现四个选项:手机信息,电池信息,使用情况统计数据,Wlan信息.下面就手机信息(可能需要设置)介绍: * 手机信息 这里可以查看到IMEI,SIM号码,运营商. 下面有一个ping的选项,测试手机网络联通性,如果你的手机打开了数据连接,可以看到ping主机是pass,http客户端pass,这里的ping IP地址可能显示不成功,但手机仍可上网,猜测可能该IP地址是手机内

手机测试Android程序

手机测试Android程序 上传者:sanpi329     我也要“分享赚钱” 2014/7/9 关注(23) 评论(0) 声明:此内容仅代表网友个人经验或观点,不代表本网站立场和观点. 测试前准备:android手机.数据线.电脑.eclipse android程序 步骤: 1.用usb数据线将手机与电脑连接(手机2.3.5: 设置-->应用程序-->开发-->usb调试) 2.打开eclipse-->window-->show view-->other-->

摘抄——读《大话移动APP测试 Android与IOS》

用了两天读完了<大话移动APP测试 Android与IOS>,由于刚开始接触移动测试,技术型的篇章只能先放过了o(╯□╰)o,有以下内容觉得很有必要时不时的看看,来反思自己的工作,自勉!! 测试的意义: 执行测试用例的意义在于学习别人写用例的思路.学习设计方法.不在重复劳动: 编写测试用例的意义在于更好的分析需求,写出有意义.有限的用例,不在为了任务写出千万条用例: 找缺陷的意义在于学习研究各种方法.各种技术找到质量高的缺陷,分析总结,不在为了缺陷数量: 测试管理的意义在于学习管理,引导测试人

星云测试- Android应用深度体检专业平台

星云测试-给你的Android应用做个深度体检   星云测试- Android应用深度体检专业平台 星云在线云测试(简称星云测试www.teststars.cc)是全球第一个发布并商用的数字化精准软件测试平台,与其他软件云测试平台相比,它更关注软件最核心的功能测试.简单的说,我们把软件视同一个生命,为它做全面的X光扫描,而后给出详细体检报告,每一个报告数据后面均有精准.无损.可追溯的数据为依托,协助您快速判断软件是否健康,还是需要立刻切除病灶. 星云测试使软件测试从过度依赖人工记录.验证,转换为

junit测试Android项目

关于junit测试Android项目方法主要有一下步骤: 1.导入junit4的jar包 在工厂中Build Path中Add Library->JUnit->JUnit4->Finish 2.编写测试代码 首先new一个JUnit Test Case,关联要测试的类,然后编写测试代码,具体可以参照, 在Eclipse中使用JUnit4进行单元测试(初级篇)(http://blog.csdn.net/andycpp/article/details/1327147) 在Eclipse中使用

推荐——Monkey《大话 app 测试——Android、iOS 应用测试指南》

<大话移动——Android与iOS应用测试指南> 京东可以预购啦!http://item.jd.com/11495028.html 当当网:http://product.dangdang.com/23510301.html#catalog 大家速度预购哈--- 这本书离不开大家的支持.其中感谢给我写书评的几位大牛.@熊力_LiXiong @阿里窥基 @徐毅-Kaveri @左耳朵耗子 .明天京东的链接也出来啦-- 推荐--Monkey<大话 app 测试--Android.iOS 应用