Android 上多方式定位元素(python)
来源:互联网 发布:红帽子linux官方下载 编辑:程序博客网 时间:2024/06/10 22:18
Android 上多方式定位元素(python)
在学习实际UI自动化测试的时候,首先就需要定位元素,然而定位元素也是最头疼的地方,因为元素各种控件名称的缺失会影响元素的准确定位。
下面针对Android上点击tab的操作来尝试一下多种方式的元素定位方法。
一个tab的组成可能是,一整个tab框,tab框中也可能包含ImageView或TextView,那么其实只要实现点击其中一种都可完成点击tab的操作了。
例子项目中,tab可拆分成元素1(一整个tab框)、元素2(ImageView)和元素3(TextView)。
(一)元素1,如下图:
红框标注的就是那个tab框
在图片左侧是元素1对应的所有属性,这里对定位元素有帮助的主要有type(对应classname)、resource-id(对应id)和xpath(对应xpath)。
由于元素1缺失resource-id,要实现点击这个tab框,这里我们只能通过classname和xpath去定位了。
classname方法:
self.driver.find_elements_by_class_name("android.support.v7.app.ActionBar.e").__getitem__(1).click()
因为classname在该界面不唯一,所以加了getitem来区分第几个。
xpath方法:
self.driver.find_element_by_xpath("//android.widget.LinearLayout[1]/android.support.v7.app.ActionBar.e[2]").click()
用xpath来定位基本不知道是干啥的,一般都得加备注,不然维护起来很麻烦。
(二)元素2,如下图:
这里红框标注的是tab框中的ImageView,通过点击该元素也可以实现点击tab的操作。
classname方法:
self.driver.find_elements_by_class_name("android.widget.ImageView").__getitem__(2).click()
id方法:
self.driver.find_elements_by_id("com.boohee.secret:id/iv_icon").__getitem__(1).click()
xpath方法:
self.driver.find_element_by_xpath("//android.widget.LinearLayout[1]/android.support.v7.app.ActionBar.e[2]/android.widget.RelativeLayout[1]/android.widget.ImageView[1]").click()
(三)元素3,如下图:
这里红框标注的是tab框中的TextView,通过点击该元素也可以实现点击tab的操作。
classname方法:
self.driver.find_elements_by_class_name("android.widget.TextView").__getitem__(2).click()
id方法:
self.driver.find_elements_by_id("com.boohee.secret:id/tv_tab").__getitem__(1).click()
xpath方法:
self.driver.find_element_by_xpath("//android.widget.LinearLayout[1]/android.support.v7.app.ActionBar.e[2]/android.widget.RelativeLayout[1]/android.widget.TextView[1]").click()
上面用的是绝对路径,由于元素3的text有值,这边也可以用相对路径来实现:
self.driver.find_element_by_xpath("//*[@text='超模25']").click()
那么看到这里,会发现在Android上classname和id定位时都用到了getitem来区分第几个,而xpath又特别不易理解,维护起来都不太方便。
如果程序中同一个界面上,元素的classname或id是唯一的话,定位元素将会方便很多。
- Android 上多方式定位元素(python)
- Android 上多方式定位元素(python)
- android+python 原生和webview元素定位
- Appium+Genymotion+robotframework+python系列二:Android元素定位
- selenium_webdriver(python)元素定位详解
- selenium + python之元素定位
- python的元素定位问题
- selenium + python之元素定位
- selenium+python 元素定位方法
- AutomanX 学习日志(4) 页面上元素定位过程
- webdriver基础python版(二)简单的元素定位
- Python Selenium 学习笔记(二)定位元素
- Selenium2+python自动化44-元素定位参数化(find_element)
- Python+Selenium的元素定位方法(xpath)
- Selenium2+python自动化-元素定位参数化(find_element)
- selenium+python自动化测试(三)--页面元素定位
- Appium+python自动化学习(二)——定位元素
- selenium+python自动化基础(定位元素...等)
- win7 xshell 缺失mfc110.dll
- 5-1 一元多项式的乘法与加法运算 (20分)
- collection---List
- Apple Pay的一些介绍
- centos supervisor + ss
- Android 上多方式定位元素(python)
- MFC-自绘控件(checkbox篇)
- CocoaPods的使用
- mapreduce中的setup()与cleanup()的使用
- 参考了别人的暴力代码 自己的错误在与 思路并不复杂 但是自己的map并没有请空 这个错误 要改
- android 实现淘宝收益图的折线
- 平衡二叉树 c/c++实现
- 5-2 列车厢调度 (25分)
- 三种获取屏幕宽度和高度的方法