Appium - WebView測试(Android)

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述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,我的被測应用,还有另外一个应用,
【Appium - WebView測试(Android)】

[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"); driver.findElementByID("wd").sendKeys("test"); driver.findElementByID("sub").click(); switchToWindow("NATIVE_APP");
























    推荐阅读