码迷,mamicode.com
首页 > 移动开发 > 详细

Appium - WebView测试(Android)

时间:2015-07-23 13:55:10      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:appium   webview   native_app   

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");






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

Appium - WebView测试(Android)

标签:appium   webview   native_app   

原文地址:http://blog.csdn.net/max229max/article/details/47020395

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!