背景:
在使用appium进行app测试时,发现很难定位webview上的控件.
使用chrome-development tool 来定位元素:
- android手机连接PC, 并确保在cmd中输入adb devices 可以找到devices的序列号.
- 打开APP的webview 页面。
- 在 PC机的chrome 浏览器上输入如下地址:
chrome://inspect/#devices
-
你会看到如下图:

-
点击 上图中的inpect,你可以看到你手机的webview页面已经在PC上了,如下图。如果你点击了inpect跳出来的页面是空白的,原因你的浏览器没翻墙。

-
在DevTools窗口顶部有个“search”按钮点击然后选择邮箱地址输入框的,你会定位到它的id,如下图:

-
android版本小于4.4,那么你需要使用Selendroid模式来作为测试引擎,在测试初始化的时候需要设置该capability。如果你的android版本大于等于4.4,那么Appium作为测试引擎,然后通过chromedriver来处理webview。如果你使用的是appium测试引擎,调试WebView需要满足安卓系统版本为Android 4.4+已上,并且需要在你的APP内配置相应的代码,在WebView类中调用静态方法setWebContentsDebuggingEnabled,如下
if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
- 在appium自动化测试脚本中,首先要进入webview 页面,然后进行操作,回到原生的APP页面(NATIVE_APP)。
Set<String> contextSet =((AppiumDriver<WebElement>)driver).getContextHandles();
for(String context : contextSet){
System.out.printf("页面上的context内容为:" + context);
if(context.toLowerCase().contains("webview")){
((AppiumDriver<WebElement>)driver).context(context);//进入webview
break;
}
}
driver.findElement(By.id("username")).sendKeys("appium.test@gmail.com");
driver.switchTo().window("NATIVE_APP");//回到原生app
在Appium进行APP测试时,定位WebView控件是个挑战。通过连接Android设备,利用Chrome Development Tool可以实现定位。详细步骤包括:设备连接、打开APP WebView页面、在PC Chrome输入特定地址进行远程调试。对于不同Android版本,可能需要Selendroid或Chromedriver配合Appium。在自动化测试脚本中,需先切换到WebView页面,完成操作后再返回NATIVE_APP。
889

被折叠的 条评论
为什么被折叠?



