UIAutomatorViewer
1、應(yīng)用場(chǎng)景
定位元素的時(shí)候必須根據(jù)元素的相關(guān)特征來(lái)進(jìn)行定位,而 UIAutomatorViewer 就是用來(lái)獲取元素特征的。
如何使用UIAutomatorViewer
1、保證想要查看的元素在當(dāng)前的頻幕上
2、打開(kāi)UIAutomatorViewer工具
3、點(diǎn)擊左上角左數(shù)第二個(gè)按鈕
4、點(diǎn)擊想要獲取特征的元素
5、查看工具右下角相關(guān)的特征信息
使用UIAutomatorViewer注意點(diǎn)
1、命令行窗口不要關(guān)閉
2、如果UIAutomatorViewer閃退
? ? ? 更換jdk為1.8以上
3、如果點(diǎn)擊左上角左數(shù)第二個(gè)按鈕時(shí)報(bào)錯(cuò)
? ? ? 重啟adb
? ? ? ? ? 先退出adb進(jìn)程:adb kill-server
? ? ? ? ? 再開(kāi)啟adb進(jìn)程:adb start-server?
2、元素定位操作api
定位一個(gè)元素
1、通過(guò)id定位一個(gè)元素
id_value:元素的resource-id的屬性值
driver.find_element_by_id(id_value)
2、通過(guò)class_name定位一個(gè)元素
class_name:元素的class的屬性值
driver.find_element_by_id(class_name)
3、通過(guò)xpath定位一個(gè)元素
xpath:定位元素的xpath表達(dá)式
格式://*[@元素 = '元素值']
driver.find_element_by_id(xpath)
例子:進(jìn)入設(shè)置界面,點(diǎn)擊搜索,輸入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("http://*[@content-desc = '收起']").click()
time.sleep(5)
driver.quit()
3、定位一組元素
1、通過(guò)id定位一組元素
id_value:元素的resource-id的屬性值
driver.find_elements_by_id(id_value)
2、通過(guò)class_name定位一組元素
class_name:元素的class的屬性值
driver.find_elements_by_id(class_name)
3、通過(guò)xpath定位一組元素
xpath:定位元素的xpath表達(dá)式
格式://*[@元素 = '元素值']
driver.find_elements_by_id(xpath)
概念:如果通過(guò)一組的方式進(jìn)行定位,獲取的返回值不再是一個(gè)元素。而是一個(gè)列表,列表中裝著所有符合這個(gè)特征的元素
4、定位元素注意點(diǎn)
如果find_element_by_xxx("xxx")傳入了一個(gè)沒(méi)有的條件,會(huì)報(bào)錯(cuò),NoSuchElementException
如果find_elements_by_xxx("xxx")傳入了一個(gè)沒(méi)有的條件,不會(huì)報(bào)錯(cuò),返回一個(gè)空列表
示例:
通過(guò) id 的形式,獲取所有 resource-id 為 ”com.android.settings:id/title“ 的元素,并打印其文字內(nèi)容,并進(jìn)入退出
通過(guò) class_name 的形式,獲取所有class 為 ”android.widget.TextView“ 的元素,并打印其文字內(nèi)容,并進(jìn)入退出
通過(guò) xpath 的形式,獲取所有包含 ”設(shè)“ 的元素,并打印其文字內(nèi)容
代碼,并進(jìn)入退出
代碼:
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("http://*[@content-desc = '向上導(dǎo)航']").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("http://*[@content-desc = '向上導(dǎo)航']").click()
# 使用xpath定位一組元素
eles = driver.find_elements_by_xpath("http://*[contains(@text , '示')]")
i = []
for ele in eles:
print(ele.text)
i.append(ele)
i[1].click()
driver.find_element_by_xpath("http://*[@content-desc = '向上導(dǎo)航']").click()
time.sleep(5)
driver.quit()
作為一個(gè)軟件測(cè)試的過(guò)來(lái)人,我想盡自己最大的努力,幫助每一個(gè)伙伴都能順利找到工作。所以我整理了下面這份資源,現(xiàn)在免費(fèi)分享給大家,有需要的小伙伴可以關(guān)注【公眾號(hào):開(kāi)心螺螄粉】自提!
軟件測(cè)試面試文檔
我們學(xué)習(xí)必然是為了找到高薪的工作,下面這些面試題是來(lái)自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-840852.html
行動(dòng)吧,在路上總比一直觀望的要好,未來(lái)的你肯定會(huì)感謝現(xiàn)在拼搏的自己!如果想學(xué)習(xí)提升找不到資料,沒(méi)人答疑解惑時(shí),請(qǐng)及時(shí)加入群:1150305204,里面有各種測(cè)試開(kāi)發(fā)資料和技術(shù)可以一起交流哦。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-840852.html
到了這里,關(guān)于App自動(dòng)化測(cè)試筆記(四):UIAutomatorViewer與元素定位API的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!