一、根据resource_id定位(resourceId等价于by_id)

1、find_element_by_id和find_elements_by_id

(1)单个resource_id操作

driver.find_element_by_id('XXXX').click()

(2)多个resource_id相同,想要操作指定的,根据索引

driver.find_elements_by_id('XXXX')[0].click()

2、find_element_by_android_uiautomator()之resource_id

find_element_by_android_uiautomator (‘new UiSelector().resourceId(“XXXX”)’).click()

3、发送文本:

注意:在配置中加入

"unicodeKeyboard": True,

"resetKeyboard": True

driver.find_element_by_id('com.ss.android.ugc.aweme:id/ai4').send_keys('珍禽养殖山鸡')

二、根据class定位

1、find_element_by_class_name和find_elements_by

driver.find_element_by_class_name('android.widget.ImageView').click()

driver.find_elements_by_class_name('android.widget.ImageView')[0].click()

2、find_element_by_android_uiautomator之class

find_element_by_android_uiautomator (‘new UiSelector().className(“XXXX”)’).click()

三、根据name定位

driver.find_element_by_name(u"未登录")

四、根据bound定位

driver.tap([(51,136),(666,221)],100) #后面的100表示按住时间长度,单位毫秒

五、根据xpath定位

elems =driver.find_element_by_xpath("//android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.TabHost/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.ScrollView/android.widget.LinearLayout/android.support.v4.view.ViewPager/android.widget.FrameLayout/android.view.ViewGroup/android.support.v7.widget.RecyclerView/android.widget.RelativeLayout[3]")

elems.click()driver.find_element_by_xpath("//*[@text='用户']").click() # 点击用户栏

六、CSS定位

(1)通过id属性定位,用#号表示id属性

driver.find_element_by_css_selector(“#kw”).click()

driver.find_elements_by_css_selector()[index].click()

(2)css通过class属性定位,用.表示class属性

driver.find_element_by_css_selector(".s_ipt").clear()

driver.find_elements_by_css_selector(".s_ipt")[0].clear()

七、根据content-desc属性值(使用content-desc的值定位,等价于accessibility_id)

driver.find_element_by_android_uiautomator (‘new UiSelector().description(“XXXX”)’).click()

八、text属性值定位

driver.find_element_by_android_uiautomator (‘new UiSelector().text(“XXXX”)’).click() 正常匹配

driver.find_element_by_android_uiautomator (‘new UiSelector().textContains(“XXXX”)’).click() 模糊匹配

driver.find_element_by_android_uiautomator (‘new UiSelector().textStartsWith(“XXXX”)’).click() 开头匹配

九、组合定位

(1)id与className

driver.find_elements_by_android_uiautomator(‘new UiSelector().resourceId("%s").className("%s")’ % (self.tongxunlu_id, self.tongxunlu_class))[1].click()

(2)class与text

driver.find_element_by_android_uiautomator(className("android.widget.TextView").text("互联网")).click()

(3)id与text属性组合

driver.find_element_by_android_uiautomator(resourceId("com.baidu.yuedu:id/webbooktitle").text("互联网")).click()

十、关系定位

1、父子定位childSelector

有时候不能直接定位某个元素,但是它的父元素很好定位,这时候就先定位父元素,通过父元素找子节点

#父子关系

childSelector son = 'resourceId("com.baidu.yuedu:id/rl_tabs").childSelector(text("互联网"))'

driver.find_element_by_android_uiautomator(son).click()

2、兄弟定位fromParent

有时候父元素不好定位,但是跟他相邻的兄弟元素很好定位,这时候就可以通过兄弟元素,找到同一父级元素下的子元素(fromParent方式定位如果兄弟元素是第一个元素,则是它自己;如果是其他元素,则是定位的它这个元素的上一个子元素!!)

#兄弟关系

fromParent brother = 'resourceId("com.baidu.yuedu:id/lefttitle").fromParent(text("互联网"))'

driver.find_element_by_android_uiautomator(brother).click()

十一、根据link_text()和partial_link_text定位

注意:link_text:只能使用精准的匹配(a标签的全部文本内容)

(1)link_text:获取hao123网站的12306超链接位置,并点击超链接

driver.find_element_by_link_text("12306").click()

(2)partial_link_text:获取hao123网站的哔哩哔哩超链接位置,并点击超链接

driver.find_element_by_partial_link_text("哔哩").click()

android 元素点击位置,appium自动化操作之元素定位点击事件全家桶(find_element_by、find_elements_by)...相关推荐

  1. python自动操作微信_Python+Appium 自动化操作微信入门看这一篇就够了

    简介 Appium 是一个开源的自动化测试工具,支持 Android.iOS 平台上的原生应用,支持 Java.Python.PHP 等多种语言. Appium 封装了 Selenium,能够为用户提 ...

  2. appium java模拟微信登录,python实战之结合Appium自动化操作微信

    本教程操作环境:win7系统,JDK1.8,Appium,Python3.7,android-sdk,JDK,模拟器 1.Appium介绍 Appium是一个开源的自动化测试工具,其支持iOS和安卓平 ...

  3. python自动操作微信_Python + Appium 自动化操作微信

    环境 本文主要环境如下: Win10 JDK1.8 Appium Python3.7 android-sdk mumu 模拟器 JDK 下载地址:https://www.oracle.com/java ...

  4. Python + Appium 自动化操作微信入门

    Appium 是一个开源的自动化测试工具,支持 Android.iOS 平台上的原生应用,支持 Java.Python.PHP 等多种语言. Appium 封装了 Selenium,能够为用户提供所有 ...

  5. python自动操作微信_Python + Appium 自动化操作微信入门

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:Python小二 简介 Appium 是一个开源的自动 ...

  6. python控制手机微信_Python + Appium 自动化操作微信入门看这一篇就够了

    简介 Appium 是一个开源的自动化测试工具,支持 Android.iOS 平台上的原生应用,支持 Java.Python.PHP 等多种语言. Appium 封装了 Selenium,能够为用户提 ...

  7. python查微信好友是否删除自己_Python + Appium 自动化操作微信查找自己是否被删除...

    importtimefrom appium importwebdriver"""找出了删除我微信的所有人并将他们自动化删除了""" def ...

  8. android 自动化web,如何在android上使用selenium或appium自动化Chrome浏览器?

    我想在 Android设备上自动化 Android Chrome浏览器(不只是webview或其他浏览器,而是Chrome浏览器).我认为这可以通过这个链接 https://sites.google. ...

  9. react判断点击位置是否为组件内,实现点击外部触发组件内事件

    1.导入 import {findDOMNode} from 'react-dom' 2.绑定ref <div ref="refTest" </div> 3.绑定 ...

最新文章

  1. Python字典基础
  2. 【我看Hibernate】Hibernate 介绍及其简单应用
  3. mysql 原理 ~ 索引通说
  4. 你以为没有CAD的前辈们画不出复杂的图纸?
  5. boost::dynamic_property_map相关的测试程序
  6. Immutable Collections(3)Immutable List实现原理(中)变化中的不变
  7. STM32-串口接收、发送数据实验-程序代码分析
  8. 谈谈全自动安装常使用的pip install的原理及作用!!!
  9. php 获取客户端的浏览器信息
  10. 微观社会调查数据:中国家庭追踪调查 CFPS
  11. 我的团长我的团第四十集
  12. joy数据向量化处理
  13. Android手机玩8086汇编
  14. 大数据应用管理模式及内容
  15. 车联网TCU USB的配置和使用
  16. 三星android手机工程模式设置中文,三星工程模式怎么进入?三星手机进入工程模式方法...
  17. 智遥工作流中调用SAP基础数据
  18. My 2007 Fash game: Elite Shooter
  19. android+仿友盟更新,android友盟增量更新
  20. 多传感器数据融合算法综述

热门文章

  1. html5文本超过指定行数隐藏显示省略号
  2. UIButton和UIimageView
  3. Java异常的概念和分类
  4. android Content provider 组件
  5. BlogEngine.Net架构与源代码分析系列part12:页面共同的基类——BlogBasePage
  6. Page_PreInit在网页传值的应用
  7. 如何利用 NVIDIA 安培架构 GPU 的新一代 Tensor Core 对计算进行极致加速
  8. DBFace升级,模型仅1.3M的轻量级高精度人脸检测模型
  9. 边缘深度学习设备基准评测:英伟达Jetson Nano胜出
  10. ICCV2019 | 腾讯优图13篇论文入选,其中3篇被选为Oral