作者: Max.Bai
时间: 2015/07
现在App都是混合型的,有原生的也包含WebView的,appium测试的时候就需要在原生和WebView之间切换才能完成测试。
查看当前所有的窗口
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, 一个其他的应用(混合型的)
通过上面方法获得当前的所有context
我们可以通过context方法切换到指定的应用
<pre name="code" class="java">driver.context("WEBVIEW_com.test.android"); driver.findElementByID("wd");
测试完web应用,需要操作原生应用的时候就需要切换回NATIVE_APP
我们可以通过context方法切换到原生应用
<pre name="code" class="java">driver.context("NATIVE_APP");
/** * 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");
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/max229max/article/details/47020395