在我們做自動化測試的過程中,最基本的就是要會元素定位,也是自動化中的靈魂所在,如果一個自動化測試工程師說不會定位元素定位,那么肯定也不會做自動化了。
如何查看元素
小伙伴們都知道如果是web端可以通過F12進行查看元素(右擊檢查查看元素)那么app如何查看呢?app的通過uiautomatorviewer工具進行元素定位,然后獲取對應的一些操作。uiautomatorviewer是Android-sdk自帶的元素定位工具。
1.打開uiautomatorviewer工具:android-sdk-windows\tools下
2.任意點擊下圖中按鈕,獲取app頁面屬相
3.通過移動鼠標放到想要定位的位置,然后查看右下角元素屬性
元素定位
1、通過id定位
# 格式 find_element_by_id()
點擊搜索框,查看右下角元素屬性
屬於id屬性,進行點擊等操作
# 通過ID獲取屬性 driver.find_element_by_id('com.taobao.taobao:id/home_searchedit').click()
2、通過class_name定位
# 格式 find_element_by_class_name()
繼續拿上面的圖我們做分析,發現有class=‘android.widget.EditText’
# 通過class_name進行定位 find_element_by_class_name('android.widget.EditText')
3、通過text定位
# 格式 find_element_by_link_text()
上圖發現text屬性有值為text=‘小米cc9e鋼化膜’
# 通過text進行定位 find_element_by_link_text('小米cc9e鋼化膜')
4、通過xpath定位
# 格式 find_element_by_xpath() # xpath也可以通過id,class,name進行定位 # 通過id find_element_by_xpath('//*[@resource-id='屬性值']') # 通過class find_element_by_xpath('//*[@class='屬性值']') # 通過name find_element_by_xpath('//*[@name='屬性值']') # 其他屬性 find_element_by_xpath('//標簽下[@index='屬性值']')
5、通過name定位
# 格式 find_element_by_name() # 這個工具上好像沒有name屬性,我們可以在web查看試試
6、通過tab_name定位
# 格式 find_element_by_tag_name()
7、通過css進行定位
# 格式 find_element_by_css_selector() # css也可以通過其他屬性定位 # 通過id find_element_by_css_selector('#id屬性') # 通過標簽定位,盡量不要用,重復的標簽太多了,可以和其他屬性一起使用 find_element_by_css_selector('標簽名#其他屬性') # 通過class find_element_by_css_selector('.class屬性')
說明:在CSS中定位id屬性前面要加"#",在class屬性面前需要加“.”
詳細的css定位語法見: https://blog.csdn.net/ouyanggengcheng/article/details/77197294
定位方法不在乎多少,在乎的是如何在最需要的時候用到它(說白了就是,那個方便用那個)
感覺今天的知識對您有幫助的話,點個關注,持續更新中~~~~讓我們在知識的海洋中翱翔