久久久久成人免费看a含羞草久色_91福利资源站_好色综合网_久久久久国产精品一区二区三区_一级片免费看_久久久久国产精品久久久久

订阅本栏目 RSS您所在的位置: 深山工作室 > python > 正文

Appium元素定位方式之android_uiautomator定位

2022/9/23 17:04:58 字体: 浏览 1172

1. android_uiautomator定位
  相当于使用 UiAutomator Api 去递归地搜索元素(Android 专属),可以说android uiautomator是终极定位方式,有的时候一些元素不能够很好的定位时,那么就需要采用android uiautomator去定位,他是一种非常强有力的定位方式,原理是通过android 自带的android uiautomator的类库去查找元素。appium对android 的uiautomator进行了封装,该方法的参数为UiSelector类定位元素的表达式:new UiSelector().属性('属性值'),实例化一个UiSelector对象,然后通过实例接口调用。
  AndroidUIAutomator是一个强有力的元素定位方式,它是通过Android UIAutomator类库去找元素,可以选择resourceId、text、className、description作为传入的字符串。

1.1 android_uiautomator之text文本定位语法
  1) 使用text文本定义
    loc_text = 'new UiSelector().text("登录/注册")'
   driver.find_element_by_android_uiautomator(loc_text).click()
  2) uiautomator text模糊定位
    文本比较长的时候,可以用textContains模糊匹配,通过text的部分信息就能够进行定位,我们直接看代码:
    loc_text = 'new UiSelector().textContains("登录/注册")'
   driver.find_element_by_android_uiautomator(loc_text).click()
   在上面的代码中我们只是将.text()的方法变成了.textContains(),在方法中传入模糊的数据就好。看到这里是否有人思考过一个问题,既然有类似的模糊寻找,那么有没有像正则表达式一样的查找呢?答案是肯定的,看我们下面的方法。

  3) textMatches 正则匹配查找
textMatches故名思义就是通过正则的来进行查找定位,也是通过text的属性来进行正则匹配,我们直接看代码:
   loc_text = 'new UiSelector().textMatches("^登录/.*")'
   driver.find_element_by_android_uiautomator(loc_text).click()
  4) textStartsWith是以某个文本开头来匹配
    new UiSelector().textStartsWith("以text文本开头")
    loc_text = 'new UiSelector().textStartsWith("登录")'
    driver.find_element_by_android_uiautomator(loc_text).click()

1.2 android_uiautomator之resourceId定位
resourceId定位和appium封装好的id定位是一样的,只是这里将写法变成了uiautomator的写法而已。

1) resourceId定位
    oc_id = 'new UiSelector().resourceId(" com.wm.dmall:id/net_image_view ")'
    driver.find_element_by_android_uiautomator(loc_id).click()
    通过上面的代码和之前的代码对比大家可能发现其实他们前面都是一样的,只是在定位的时候发生了一些变化,text变换成了resourceId即可,也就是页面对象属性的信息进行变更了,其他方法都是一样。
2) resourceIDMatches 定位
通过id进行正则匹配定位
    loc_id = 'new UiSelector().resourceIdMatches(".+net_image_view ")'
    driver.find_element_by_android_uiautomator(loc_id).click()
    1.3 android_uiautomator之className定位
    页面上的class属性一般不唯一,多半用在复数定位时候。比如通过class属性定位'同意'这个按钮下标就是1。

1) className定位
# className复数定位
loc_class = 'new UiSelector().className("android.widget.TextView")'
driver.find_elements_by_android_uiautomator(loc_class)[1].click()

20 uiautomator classNameMatches定位
通过className正则匹配进行定位:

loc_class = 'new UiSelector().classNameMatches (".*widget.TextView")'
driver.find_elements_by_android_uiautomator(loc_class)[1].click()
1.4 android_uiautomator之description定位


loc_id = 'new UiSelector().
description("多点")'
driver.find_element_by_android_uiautomator(loc_id).click()
1.5 android_uiautomator之组合定位

1)id与text属性组合
id_text = 'resourceId("com.wm.dmall:id/funcTitle").text("待支付")'
driver.find_element_by_android_uiautomator(id_text).click()
2)class与text属性组合
class_text = 'className("android.widget.TextView").text("待支付")'
driver.find_element_by_android_uiautomator(class_text).click()
3)父子关系定位
son = 'resourceId("com.wm.dmall:id/container").childSelector(text("我的"))'
driver.find_element_by_android_uiautomator(son).click()
4)兄弟定位fromParent
有时候父元素不好定位,但是跟他相邻的兄弟元素很好定位,这时候就可以通过兄弟元素,找到同一父级元素下的子元素。

brother = 'resourceId("com.wm.dmall:id/nav_item_laber_tv").fromParent(text("我的"))'
driver.find_element_by_android_uiautomator(brother).click()

信息来源网址:https://www.cnblogs.com/dy99/p/14287543.html

相关阅读
许愿墙页面设计完成,开始进行写相关的样式
连云港党建门户网站
asp随机显示字符长度与类型(可随机显示数字、小写字母、大写字母,可以做为随机密码使用)
静态网站利用微信URL Scheme生成的ticket从浏览器h5跳到微信小程序完整代码
css里expression实现界面对象的批量控制
微信小程序-接入广告
jquery动态生成的html代码中无法使用jquery事件的解决方法
asp利用sql操作数据表、数据库的一些方法
共有0条关于《Appium元素定位方式之android_uiautomator定位》的评论
发表评论
正在加载评论......
返回顶部发表评论
呢 称:
表 情:
内 容:
评论内容:不能超过 1000 字,需审核,请自觉遵守互联网相关政策法规。
验证码: 验证码 
网友评论声明,请自觉遵守互联网相关政策法规。

您发布的评论即表示同意遵守以下条款:
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家、社会、集体和公民的合法权益;
二、不得发布国家法律、法规明令禁止的内容;互相尊重,对自己在本站的言论和行为负责;
三、本站对您所发布内容拥有处置权。

更多信息>>栏目类别选择
百度小程序开发
微信小程序开发
微信公众号开发
uni-app
asp函数库
ASP
DIV+CSS
HTML
python
更多>>同类信息
Android移动端自动化测试:使用UIAutomatorViewer与Selenium定位元素
python通过代码修改pip下载源让下载库飞起
python里面requests.post返回的res.text还有其它的吗
windows7环境下安装配置jdk
python对微信操作要用到这两个库wxpy与itchat
8种Python字符串拼接的方法,你知道几种
更多>>最新添加文章
dw里面查找替换使用正则删除sqlserver里面的CONSTRAINT
Android移动端自动化测试:使用UIAutomatorViewer与Selenium定位元素
抖音直播音挂载小雪花 懂车帝小程序
javascript获取浏览器指纹可以用来做投票
火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
python通过代码修改pip下载源让下载库飞起
python里面requests.post返回的res.text还有其它的吗
更多>>随机抽取信息
CSS的优化与技巧
深山旅行社网站管理系统 v1.6
超级经典一套鼠标控制左右滚动图片带自动翻滚
GOOGLE百度破解,网站优化SEO最终详解
收集各种游览器禁止javascript的方法
另外的一种可以计算的倒计时效果
主站蜘蛛池模板: 99国产精品99久久久久久 | 一边捏奶头一边高潮视频 | 日本高清视频wwww色 | 疯狂做受xxxx国产 | 成人福利视频在线观看网 | 欧美日韩一区二区三区在线观看 | 国产精品久久毛片av大全日韩 | 日本人一级毛片免费完整视频 | 亚洲av乱码一区二区三区香蕉 | 亚洲第一天堂无码专区 | 无码专区视频中文字幕 | 亚洲第一综合色 | 免费观看欧美一级特黄 | 久久99精品久久久久婷婷 | 无码国产精品一区二区免费vr | 九九热精品免费观看 | 欧美作爱福利免费观看视频 | 男人扒开添女人下部免费视频 | 亚洲国产成人无码av在线播放 | 精品久久久久久成人av | 免费国内精品久久久久影院 | 日本韩国欧美 | 亚洲乱色熟女一区二区三区丝袜 | zsvdy午夜| 看片午夜| 国产免费一级高清淫曰本片 | 一级片免费播放 | 国产内射性高湖 | 美女脱了内裤张开腿让男人桶网站 | 久久日韩乱码一二三四区别 | 亚洲国产精品无码久久一区二区 | 99精品国产美女福到在线不卡 | 成人午夜大片免费视频77777 | 国产在线精品二区 | 在线看欧美成人中文字幕视频 | 久久国产精品久久久久久 | 青青青青青青在线精品视频 | 国产亚洲精品久久久一区 | 亚洲日韩国产一区二区三区 | 欧美精品一区二区三区在线 | 影音先锋男人av鲁色资源网 |