IOS元素定位对应关系

resource-id也称为id,resource-id是唯一的

元素定位

agree_continue_id = "com.baidu.searchbox:id/positive_button"

WebDriverWait(driver, 10, 1).until(EC.visibility_of_element_located((MobileBy.ID, agree_continue_id)))

driver.find_element_by_id(agree_continue_id).click(

AccessibilityId也称为content-desc

元素定位

tiku_AccessibilityId = "题库"

WebDriverWait(driver, 10, 1).until(EC.visibility_of_all_elements_located((MobileBy.ACCESSIBILITY_ID, tiku_AccessibilityId)))

driver.find_element_by_accessibility_id(tiku_AccessibilityId).click()

比如xpath中同时包含class和text两个属性

元素定位

agree_continue_xpath = "//*[@class='android.widget.Button' and @text='同意并继续']"

WebDriverWait(driver, 10, 1).until(EC.visibility_of_element_located((MobileBy.XPATH, agree_continue_xpath)))

driver.find_element_by_xpath(agree_continue_xpath).click()

根据text属性为"请输入手机号"查找元素。

  1. ele = self.driver.find_element_by_android_uiautomator('new UiSelector().text("请输入手机号")')

  2. ele.send_keys("123")

5.3 textStartsWith定位

以text什么开始

driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("请输入")')

5.4 textMatches 正则匹配查找

textMatches故名思义就是通过正则的来进行查找定位,他也是通过text的属性来进行正则匹配,我们直接看代码:

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^请输入手.*")')

ele.send_keys("123")

5.5 resourceID定位

resourceId定位和appium封装好的id定位是一样的,只是这里将写法变成了uiautomator的写法而已,看下面代码

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().resourceId("cn.com.open.mooc:id/et_phone_edit")')

ele.send_keys('234')

5.6 resourceIDMatches 定位

通过id进行正则匹配定位

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().resourceIdMatches(".+et_phone_edit")')

ele.send_keys('234')

5.7 className定位

通过调用android uiautomator使用className进行定位

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.EditText")')

ele.send_keys('234')

5.8 classNameMatches定位

通过className正则匹配进行定位

ele = self.driver.find_element_by_android_uiautomator('new UiSelector().classNameMatches (".*EditText")')

ele.send_keys('234')

5.9 组合定位

#组合定位

self.driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.xueqiu.android:id/tab_name").text("我的")').click()

或者

组合定位,一般组合用id,class,text这三个属性会比较好一点

id+class 属性组合

id_class = 'resourceId("com.xyh.commerce:id/ll_personal").className("android.widget.LinearLayout")'

driver.find_element_by_android_uiautomator(id_class).click()

5.10 父子关系、兄弟关系定位

#父子关系定位

self.driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.xueqiu.android:id/title_container").childSelector(text("股票"))')

#兄弟关系定位

self.driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.xueqiu.android:id/title_container").fromParent(text("股票"))')

5.11 滚动查找

#滚动查找#滚动查找
self.driver.find_element_by_android_uiautomator('new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("查找的元素文本").instance(0));')

相关推荐
2501_9159090623 分钟前
“绑定 HTTPS” 的工程全流程 从证书配置到真机验证与故障排查
网络协议·http·ios·小程序·https·uni-app·iphone
2501_915918411 小时前
iOS 混淆实战 多工具组合完成 IPA 混淆、加固与工程化落地(iOS混淆|IPA加固|无源码混淆|Ipa Guard|Swift Shield)
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者84 小时前
如何系统化掌握 iOS 26 App 耗电管理,多工具协作
android·macos·ios·小程序·uni-app·cocoa·iphone
2501_915921435 小时前
运营日志驱动,在 iOS 26 上掌握 App 日志管理实践
android·macos·ios·小程序·uni-app·cocoa·iphone
马拉萨的春天7 小时前
iOS的多线程下数据安全和内存泄漏以及工具使用监测内存泄漏
macos·ios·cocoa·多线程
2501_9151063214 小时前
HTTPS 爬虫实战指南 从握手原理到反爬应对与流量抓包分析
爬虫·网络协议·ios·小程序·https·uni-app·iphone
2501_9160074714 小时前
iOS 上架技术支持全流程解析,从签名配置到使用 开心上架 的实战经验分享
android·macos·ios·小程序·uni-app·cocoa·iphone
非专业程序员Ping1 天前
一文读懂字体文件
ios·swift·assembly·font
wahkim1 天前
移动端开发工具集锦
flutter·ios·android studio·swift
2501_916007471 天前
提升 iOS 26 系统流畅度的实战指南,多工具组合监控
android·macos·ios·小程序·uni-app·cocoa·iphone