IOS元素定位对应关系

news/2024/7/20 20:37:05 标签: 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));')


http://www.niftyadmin.cn/n/5332554.html

相关文章

rust跟我学五:是否安装双系统

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么得到检测双系统的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Ru…

龙腾荆楚 | 软件供应链安全检测中心落地襄阳

1月16日,襄阳市东津新区“园区提质、企业满园”行动暨2024年东津云谷首月重大项目集中签约活动圆满完成,开源网安城市级项目再下一城,分别与襄阳市政府、高校、国投签订战略合作协议,推动荆楚地区数字政府、数字经济、数字社会、数…

RT-Thread 15. list_timer与软定时器

1. 代码 void rt_thread_usr1_entry(void *parameter) {/* set LED2 pin mode to output */rt_pin_mode(LED2_PIN, PIN_MODE_OUTPUT);while (1){rt_pin_write(LED2_PIN, PIN_HIGH);rt_thread_mdelay(2000);rt_pin_write(LED2_PIN, PIN_LOW);rt_thread_mdelay(3000);} }int ma…

国标GB28181安防视频监控EasyCVR级联后上级平台视频加载慢的原因排查

国标GB28181协议安防视频监控系统EasyCVR视频综合管理平台,采用了开放式的网络结构,可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,同时还…

【开源项目推荐】8.9K纯中文本地GPT知识库搭建项目

大家好,我是独孤风。 又到了本周的开源项目推荐。近一年多的时间,人工智能迎来了大爆发。GPT相关的大模型的发展让很多领域都发生了巨大的变化。 但是虽然GPT的自然语言识别功能异常的强大,但回答给我们的知识内容并不尽如人意。那么&#xf…

AliyunECS服务器在安装docker服务时一直出现:错误:为仓库 ‘root_n‘ 下载元数据失败

AliyunECS服务器在安装docker服务时一直出现:错误:为仓库 root_n 下载元数据失败 一、AliyunECS服务器在安装docker服务时一直出现:错误:为仓库 root_n 下载元数据失败endl 一、AliyunECS服务器在安装docker服务时一直出现:错误:为仓库 ‘roo…

网站被大量cc攻击导致打不开怎么解决

最近遇到很多使用阿里云服务器的用户联系到德迅云安全,大多数都是反映自己网站最近遇到攻击问题,导致网站打不开,业务受到非常大的影响。 网站经常被攻击,相信这个情况也是很多站长最为头疼的问题,那怎么样才能有效的…

【面食合集】说说你对操作系统的理解?核心概念有哪些?

面试官:说说你对操作系统的理解?核心概念有哪些? 一、是什么 操作系统(Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关…