Android 上多方式定位元素(python)

 

 

Android 上多方式定位元素(python)python

在學習實際UI自動化測試的時候,首先就須要定位元素,然而定位元素也是最頭疼的地方,由於元素各類控件名稱的缺失會影響元素的準肯定位。
下面針對Android上點擊tab的操做來嘗試一下多種方式的元素定位方法。
一個tab的組成多是,一整個tab框,tab框中也可能包含ImageView或TextView,那麼其實只要實現點擊其中一種均可完成點擊tab的操做了。
例子項目中,tab可拆分紅元素1(一整個tab框)、元素2(ImageView)和元素3(TextView)。 android

 

(一)元素1,以下圖:app

紅框標註的就是那個tab框學習

在圖片左側是元素1對應的全部屬性,這裏對定位元素有幫助的主要有type(對應classname)、resource-id(對應id)和xpath(對應xpath)。測試

因爲元素1缺失resource-id,要實現點擊這個tab框,這裏咱們只能經過classname和xpath去定位了。
classname方法:ui

self.driver.find_elements_by_class_name("android.support.v7.app.ActionBar.e").__getitem__(1).click()

由於classname在該界面不惟一,因此加了getitem來區分第幾個。spa

xpath方法:.net

self.driver.find_element_by_xpath("//android.widget.LinearLayout[1]/android.support.v7.app.ActionBar.e[2]").click()

用xpath來定位基本不知道是幹啥的,通常都得加備註,否則維護起來很麻煩。code

 

(二)元素2,以下圖:htm

 

這裏紅框標註的是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)

 

轉載:http://blog.csdn.net/liguilicsdn/article/details/51077225,http://www.it610.com/article/5269414.htm

相關文章
相關標籤/搜索