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. 整个shuffle的流程图

    整个shuffle的流程图   Paste_Image.png Map Shuffle的作用以及相应的设置 partition 过程:输入的<key,value>对经过map()处理后输出 ...

  2. Flex 编译器及编译步骤

    通过为Flex项目添加编译器参数:-keep-generated-actionscript=true 可以看到经过编译器处理过的源程序文件集合. 在这些文件的文件名中包含有“xxx-generated ...

  3. 洛谷 P1591 阶乘数码

    P1591 阶乘数码 题目描述 求n!中某个数码出现的次数. 输入输出格式 输入格式: 第一行为t(≤10),表示数据组数.接下来t行,每行一个正整数n(≤1000)和数码a. 输出格式: 对于每组数 ...

  4. xadmin列表页添加自定义工具栏toolbar

    通过xadmin的Plugin实现,adminx.py中 class Link2AdminPlugin(BaseAdminPlugin): link_2_admin = False def init_ ...

  5. ZOJ Problem Set - 3822Domination(DP)

    ZOJ Problem Set - 3822Domination(DP) problemCode=3822">题目链接 题目大意: 给你一个n * m的棋盘,每天都在棋盘上面放一颗棋子 ...

  6. 转:向IOS设备发送推送通知

    背景 SMS 和 MMS 消息是由无线运营商通过设备的电话号码向特定设备提供的.实现 SMS/MMS 的服务器端应用程序的开发人员必须费大量精力才能与现有的封闭电信基础架构进行交互(其中包括获取电话号 ...

  7. FileStream vs/differences StreamWriter?

    https://stackoverflow.com/questions/4963667/filestream-vs-differences-streamwriter What is different ...

  8. Java 关于运算结果

    今天发现一个自己的一个知识误区 原来有些自己以为会发生异常的运算,并没有异常发生,只要运算符两端存在至少一个浮点数 比如: public class Demo { /** * @param args ...

  9. WinRAR 5.21 去弹窗 疑惑

    WinRAR 突然就有弹窗广告了 ,找了个方法,重新写一下安装目录下的 rarreg.key,确实有效果但是重写的和之前的完全一样啊,至少在文本中完全一样,怎么回事. 下面附上两个文件, 1.key ...

  10. Lucene 定义

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...