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
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Appium 是一个开源的自动化测试工具,用于移动应用的UI测试,它支持多种平台和多种编程语言,包括 Java。在 Appium 中,定位元素是测试脚本的核心部分,Java API 提供了多种方法来查找 UI 元素。以下是一些常见的元素定位方法: 1. By.id (根据ID定位):这是最常用的定位方式,通过元素的唯一 ID 来找到元素。 ```java WebElement element = driver.findElement(By.id("your_element_id")); ``` 2. By.name (根据名称定位):如果元素的name属性是唯一的,可以使用此方法。 ```java WebElement element = driver.findElement(By.name("element_name")); ``` 3. By.className (根据class名称定位):定位具有特定CSS类名的元素。 ```java WebElement element = driver.findElement(By.className("your_class_name")); ``` 4. By.tagName (根据标签名定位):如定位所有的`<div>`元素。 ```java List<WebElement> elements = driver.findElements(By.tagName("div")); ``` 5. By.xpath (根据XPath表达式定位):提供强大的路径选择能力,适用于复杂结构的页面。 ```java WebElement element = driver.findElement(By.xpath("//element[@attribute='value']")); ``` 6. By.linkText (根据链接文字定位):找到匹配链接文本的元素。 ```java WebElement element = driver.findElement(By.linkText("link_text")); ``` 7. By.partialLinkText (根据链接文本的部分匹配):对链接文本进行模糊匹配。 每个定位器的使用取决于实际的UI元素结构,可能需要尝试多种方法才能找到正确的元素定位元素后,可以执行点击、输入等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值