Appium 元素定位方法(Java版)

一、App定位元素

1、通过ID定位元素,对应【resource-id】属性
这里写图片描述
driver.findElementById(“me.ele:id/w0”);

2、通过Name定位元素,对应【text】属性
这里写图片描述
driver.findElementByName(“外卖”);

3、通过ClassName定位元素,对应【class】属性
这里写图片描述
driver.findElementsByClassName(“android.widget.TextView”);

4、通过Xpath定位元素,对应【xpath】属性
这里写图片描述
driver.findElementByXPath(“//android.widget.Button[@index=’1’]”);

5、通过AccessibilityId定位元素,对应【content-desc】属性
这里写图片描述
driver.findElementByAccessibilityId(“我的”);

6、通过AndroidUiAutomator定位元素
driver.findElementByAndroidUIAutomator(“new UiSelector().text(\”Add note\”)”);
driver.findElementByAndroidUIAutomator(“new UiSelector().resourceId(\”com.tencent.mm:id/do\”)”);

7、通过driver.getPageSource()打印页面元素

二、WebApp定位元素

1、 chrome toggle device mode 模式
打开PC chrome浏览器,点击F12
这里写图片描述
点击toggle device mode,F5刷新就可以了。在这里可以切换设备型号及屏幕的大小。
这里写图片描述

三、混合App定位元素

混合应用是原生APP+webview组成的,可以简单的理解为一个原生app的外壳,内部全是html页面。在WebView类中调用静态方法setWebContentsDebuggingEnabled,如下:

if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.KITKAT) {

    WebView.setWebContentsDebuggingEnabled(true);

}
//这里使用driver.getContextHandles();获取app的handles,原生应用会有一个handle,webview也会有一个handle

Set<String> contexts = driver.getContextHandles();

for(String cotext:contexts) {

    System.out.println(context);

//会打印出  NATIVE_APP(原生app handle)和WEBVIEW_com.example.testapp(webview的 handle)

}

//进入webview中

driver.context((String) contexts.toArray()[1]);

//操作webview中的内容

参考:http://www.cnblogs.com/sundalian/p/5629500.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值