appium测试-如何定位WebView进行测试

appium测试中,APP中有时候有H5页面,如何对其中的WebView进行测试;这里以模拟器中APIDemo中的例子做演示,在APIDemo->Views->WebView中选择点击WebView元素在这里插入图片描述
第一种方法:如果有AccessibilityId就可以直接根据其来获取
driver.findElementByAccessibilityId("Hello World! - 1").click();
第二种方法:利用chromedriver和chrome的DevTool来定位元素
  • 1、下载手机chrome对应版本的Chromedriver并设置capabilitiy-chromedriverExecutableDir的chromedriver的绝对路径,否则可能会报错

        An unknown server-side error occurred while processing the command.
        Original error: unknown error: Chrome version must be >= 55.0.2883.0
    

在这里插入图片描述
版本对应下载地址:https://github.com/appium/appium/blob/4fd9758c3fefdb83be3ec0cc96128739dce8092d/docs/en/writing-running-appium/web/chromedriver.md
在这里插入图片描述
capabilitiy设置:

capabilities.setCapability("chromedriverExecutableDir","D:\\QinZhen\\TestDev\\chromedrivers\\");
  • 2、在浏览器中输入chrome://inspect,页面将显示设备上已启用调试的 WebView 列表。
    在这里插入图片描述
  • 3、点击inspect开始调试想要调试的 WebView
    在这里插入图片描述

注:真机测试的话必须从你的APP中启用 WebView 调试。要启用 WebView 调试,请在 WebView 类上调用静态方法 setWebContentsDebuggingEnabled。(很多小伙伴可能会问具体到底要怎么启用?这个需要找研发配合,让研发在代码中打开调试功能才行)。而模拟器中是默认开启的

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    WebView.setWebContentsDebuggingEnabled(true);
}
  • 4、切换至WebView需要context信息,可以用getContextHandles循环打印的方式,在执行过程中获取
for (Object c : driver.getContextHandles()){
            System.out.println(c.toString());
        }
        Thread.sleep(3000);
        for (Object c : driver.getContextHandles()){
            System.out.println(c.toString());
        }

在这里插入图片描述

  • 5、通过driver.context()完成WebView 的切换,再通过CSS进行页面元素的定位操作
		//开始往webview里面进行切换
        driver.context("WEBVIEW_com.example.android.apis");
        //切换完成后可以用css进行定位
        driver.findElementByCssSelector("body > a").click();

效果演示:

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值