appium元素定位总结

1|0appium元素定位方法总结

1|1使用uiautomatorviewer定位工具driver.find_element_by_android_uiautomator(uia_string)

1|0根据resourceId属性定位

driver.find_element_by_android_uiautomator('new UiSelector().resourceId("%s")')

体现:如下图,点击顶部扫码器:

 

 


对应uiautomator名称:“ resource-id”:

driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.rfchina.app.supercommunity:id/square_title_btn_scan")').click()

选择resource-id定位需要特别注意,界面中resource-id不是唯一的,有可能存在很多控件的resource-id是相同的。

1|0根据文本,描述,类名,索引属性定位

# 根据 text 定位
driver.find_element_by_android_uiautomator('new UiSelector().text("%s")') #对应uiautomator名称:“text”

# 根据 description 定位
driver.find_element_by_android_uiautomator('new UiSelector().description("%s")') # 对应uiautomator名称:“content-desc”

# 根据 className 定位
driver.find_element_by_android_uiautomator('new UiSelector().className("%s")') # 对应uiautomator名称:“class”

# 根据 index 定位
driver.find_element_by_android_uiautomator('new UiSelector().index("%s")') # 对应uiautomator名称:“index”

选择className定位需要特别注意,界面中class往往都不是唯一的,大量控件的class会一样。


1|2根据content-desc定位 driver.find_element_by_accessibility_id()

1|3根据xpath定位 driver.find_element_by_xpath()

from appium import webdriver import time desired_caps = { "appPackage": "com.rfchina.app.supercommunity", "appActivity": "com.rfchina.app.supercommunity.client.StartActivity", "platformName": "Android", "deviceName": "Android Emulator" } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) time.sleep(5) driver.find_element_by_id("com.rfchina.app.supercommunity:id/img_serivce_communities_layout").click()

 


__EOF__

本文作者Harry
本文链接https://www.cnblogs.com/harry66/p/11959795.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Harry_666  阅读(378)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示