1. driver.findElement(MobileBy.AndroidUIAutomator("邀请")).click();
2. driver.findElementById("resourceId").click();
3. import io.appium.java_client.remote.AutomationName;
import io.appium.java_client.remote.MobileCapabilityType;
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
4. assertNotEquals(driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().clickable(true)")).getText(), null);
5. assertNotEquals(driver.findElements(MobileBy.AndroidUIAutomator("new UiSelector().clickable(true)")).size(), 0);
6. assertNotEquals(driver.findElementById("android:id/content")
.findElement(MobileBy.AccessibilityId("Graphics")).getText(), null);
7.assertEquals(driver.findElementById("android:id/content").findElements(MobileBy.AccessibilityId("Graphics")).size()
8. driver.findElement(MobileBy.AndroidUIAutomator("resourceId(\"io.appium.android.apis:id/edit\")"));
9. editElement.sendKeys("value");
10. driver.findElementByAccessibilityId("Views").click();
11. AndroidElement list = driver.findElement(By.id("android:id/list"));
MobileElement radioGroup = list.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector())
.scrollIntoView("+ "new UiSelector().text(\"Radio Group\"));"));
12.driver.findElementByAndroidUIAutomator("new UiSelector().index(0)");
13. findElementByAndroidUIAutomator("text(\"Accessibility\")");
14. 通过index查找: driver.find_element_by_android_uiautomator("new UiSelector().index(5)")
15. 通过text查找: driver.find_element_by_android_uiautomator("new UiSelector().text(\"6\")")
16. 通过clickable查找: driver.find_element_by_android_uiautomator("new UiSelector().clickable(true)")
17. 通过content-desc查找: driver.find_element_by_android_uiautomator("new UiSelector().description(\"\equals")")
18. 通过resource-id查找: driver.find_element_by_android_uiautomator("new UiSelector().resourceId(\"com.android.calculator2:id/digit_3\")")
19. 通过两个以上属性共同查找: driver.find_element_by_android_uiautomator("new UiSelector().clickable(true).index(5)")
20. 使用ByName定位
路径: appium\node_modules\appium-android-driver\build\lib
修改文件:driver.js,只需要修改其中一行即可
this.locatorStrategies = ['xpath', 'id', 'class name', 'accessibility id', '-android uiautomator','name'];--------再此行代码中添加上name
修改完成之后,保存文件,再次重启appium服务,就可以继续使用ByName定位
21) text 方式
driver.find_element_by_android_uiautomator('new UiSelector().text("%s")')
22) description 方式
driver.find_element_by_android_uiautomator('new UiSelector().description("%s")')
23) className 方式
driver.find_element_by_android_uiautomator('new UiSelector().className("%s")')
24) index 方式
driver.find_element_by_android_uiautomator('new UiSelector().index("%s")')
25) className + index 方式
driver.find_element_by_android_uiautomator(
'new UiSelector().className("%s").childSelector(new UiSelector().index("%d"))')
26) 伪xpath方法定位
driver.find_element_by_android_uiautomator(‘new UiSelector().text("Custom View").fromParent(
new UiSelector().text("Accessibility Service"))‘).click() #通过同级元素定位同级元素
driver.find_element_by_android_uiautomator(‘new UiSelector().className("android.widget.ListView")
.childSelector(new UiSelector().text("Custom View"))‘).click() #通过父级元素定位子集元素
27) resourceId 方式
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("%s")')

参考资料:
1) https://github.com/appium/java-client/tree/master/docs
2) http://appium.io/docs/en/writing-running-appium/caps/index.html
3) On Windows, ensure that you always run Appium in Administrator mode
4)https://blog.csdn.net/eldencheng/article/details/79491579
5) https://testerhome.com/topics/10071

Appium_Java_API的更多相关文章

随机推荐

  1. mysql 5.6 安装教程

    首先是下载 mysql-installer-community-5.6.14.0.msi ,大家可以到 mysql 官方网去下载,也可以到笔者所提供的地址去下载,下载方法在这里就不多说了,我想大家都明 ...

  2. SQL保存XML报错 “XML 分析: 行 1,字符 47,非法的 xml 字符”

    例如: <?xml version="1.0" encoding="utf-8" standalone="yes"?> < ...

  3. Debian9.5 配置x11vnc远程桌面

    x11vnc是一个VNC服务器,它允许用户远程查看并用任何VNC查看器与真实的X显示器(即与物理监视器,键盘和鼠标相对应的显示器)进行交互.虽然它的原作者Karl Runge不再开发,但LibVNC和 ...

  4. OpenJDK源码研究笔记(十):枚举的高级用法,枚举实现接口,竟是别有洞天

    在研究OpenJDK,Java编译器javac源码的过程中,发现以下代码. 顿时发现枚举类竟然也有如此"高端大气上档次"的用法. 沙场点兵(用法源码) com.sun.tools. ...

  5. ajax提交转码解码

    js 文字传输加密 encodeURI(encodeURI(distName)) java 解密 URLDecoder.decode(request.getParameter("distNa ...

  6. 使用DbUtils实现增删改查——ResultSetHandler 接口的实现类

    在上一篇文章中<使用DbUtils实现增删改查>,发现运行runner.query()这行代码时.须要自己去处理查询到的结果集,比較麻烦.这行代码的原型是: public Object q ...

  7. 什么是PV和UV?

    技术角度 1个PV是指从浏览器发出一个对网络server的Request,网络server接到Request之后.会開始把该Request相应的一个Page(Page就是一个网页)发送到client的 ...

  8. Markdown---语法小记

    在CSDN上的文章如今都习惯使用Markdown来编写比較方便美观.这里小结下常见的Markdown语法下: 1.标题: 方式1 # H1 ## H2 ### H3 #### H4 ##### H5 ...

  9. H.264视频编解码SoC满足高清DVR设计需求

    硬盘录像机(DVR)作为监控系统的核心部件之一,在10年里高速发展,从模拟磁带机的替代品演变成具有自己独特价值的专业监控数字平台,并被市场广泛接受.监控系统伴随DVR这些年的发展向着IP化.智能化发展 ...

  10. JAVA配置环境