赞
踩
定位元素的时候必须根据元素的相关特征来进行定位,而 UIAutomatorViewer 就是用来获取元素特征的。
1、保证想要查看的元素在当前的频幕上
2、打开UIAutomatorViewer工具
3、点击左上角左数第二个按钮
4、点击想要获取特征的元素
5、查看工具右下角相关的特征信息
1、命令行窗口不要关闭
2、如果UIAutomatorViewer闪退
更换jdk为1.8以上
3、如果点击左上角左数第二个按钮时报错
重启adb
先退出adb进程:adb kill-server
再开启adb进程:adb start-server
id_value:元素的resource-id的属性值
driver.find_element_by_id(id_value)
class_name:元素的class的属性值
driver.find_element_by_id(class_name)
xpath:定位元素的xpath表达式
格式://*[@元素 = '元素值']
driver.find_element_by_id(xpath)
例子:进入设置界面,点击搜索,输入hello,最后返回
代码:
- from appium import webdriver
- import time
- desired_caps = dict()
- desired_caps['platformName'] = 'Android'
- desired_caps['platformVersion'] = '5.1'
- desired_caps['deviceName'] = '192.168.56.101:5555'
- desired_caps['appPackage'] = 'com.android.settings'
- desired_caps['appActivity'] = '.Settings'
- driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
- # time.sleep(10)
- driver.find_element_by_id("com.android.settings:id/search").click()
- time.sleep(10)
- driver.find_element_by_class_name("android.widget.EditText").send_keys("hello")
- time.sleep(10)
- driver.find_element_by_xpath("//*[@content-desc = '收起']").click()
- time.sleep(5)
- driver.quit()
id_value:元素的resource-id的属性值
driver.find_elements_by_id(id_value)
class_name:元素的class的属性值
driver.find_elements_by_id(class_name)
xpath:定位元素的xpath表达式
格式://*[@元素 = '元素值']
driver.find_elements_by_id(xpath)
概念:如果通过一组的方式进行定位,获取的返回值不再是一个元素。而是一个列表,列表中装着所有符合这个特征的元素
如果find_element_by_xxx("xxx")传入了一个没有的条件,会报错,NoSuchElementException
如果find_elements_by_xxx("xxx")传入了一个没有的条件,不会报错,返回一个空列表
示例:
通过 id 的形式,获取所有 resource-id 为 ”com.android.settings:id/title“ 的元素,并打印其文字内容,并进入退出
通过 class_name 的形式,获取所有class 为 ”android.widget.TextView“ 的元素,并打印其文字内容,并进入退出
通过 xpath 的形式,获取所有包含 ”设“ 的元素,并打印其文字内容
代码,并进入退出
代码:
- from appium import webdriver
- import time
- desired_caps = dict()
- desired_caps['platformName'] = 'Android'
- desired_caps['platformVersion'] = '5.1'
- desired_caps['deviceName'] = '192.168.56.101:5555'
- desired_caps['appPackage'] = 'com.android.settings'
- desired_caps['appActivity'] = '.Settings'
- driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
- # 定位一组元素
- # 使用id定位一组元素
- # eles = driver.find_elements_by_id("com.android.settings:id/title")
- # i = []
- # for ele in eles:
- # print(ele.text)
- # i.append(ele)
- # i[1].click()
- # driver.find_element_by_xpath("//*[@content-desc = '向上导航']").click()
-
- # 使用class定位一组元素
- # eles = driver.find_elements_by_class_name("android.widget.TextView")
- # i = []
- # for ele in eles:
- # print(ele.text)
- # i.append(ele)
- # i[4].click()
- # driver.find_element_by_xpath("//*[@content-desc = '向上导航']").click()
-
- # 使用xpath定位一组元素
- eles = driver.find_elements_by_xpath("//*[contains(@text , '示')]")
- i = []
- for ele in eles:
- print(ele.text)
- i.append(ele)
- i[1].click()
- driver.find_element_by_xpath("//*[@content-desc = '向上导航']").click()
-
- time.sleep(5)
- driver.quit()
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。