Appium框架API學習(一)

本教程是基于本人學習android NativeApp自動化測試過程積累總結的,學習過程用到的工具是appium+python+UIAutomator+android手機+待測APP!

一、準備定位工具

首先我們需要先下載android studio,然后安裝android sdk,在系統變量里添加export ANDROID_HOME="/Users/xxx/Library/Android/sdk"。我們需要的工具就是uiautomator,它在android_sdk/tools/uiautomatorviewer里。

二、啟動定位工具

1、在終端上用命令進入tools目錄,我的tools目錄在/Users/wuyanjiao/Library/Android/sdk/tools,然后直接執行命令./uiautomatorviewer,當看到如下頁面就表示工具啟動成功。

定位工具

2、手機連接上電腦
用數據線把手機和電腦連接上,并把手機設置成開發者模式,USB調試開啟。然后在終端上執行adb devices,可以查看是否連接成功。連接成功后,我們在手機上打開待測APP,在這里我以自帶計算器APP為例。打開后,點擊圖片中左上角第二個按鈕,就可以看到app的頁面元素了。想要找哪個元素,鼠標移動到上面,就可以看到詳細的元素了。

image.png

三、基本定位元素方法

1、find_element_by_id()
當遇到resource-id有唯一值。以定位計算器上8這個元素并點擊為例:

number8 = self.driver.find_element_by_id("digit8")
number8.click()

2、find_elements_by_id()
當遇到的resource-id有多個相同的值,可以使用該方法。以元素在列表中的位置來定位,以定位計算器上的8并點擊為例:

elements = self.driver.find_elements_by_id("digit8")
elements[0].click()

3、find_element_by_accessibility()
當某個元素的content-desc有值的時候,可以使用該方法。以定位計算器上的÷號為例:

element = self.driver.find_element_by_accessibility_id(u"除")
element.click()

4、find_elements_by_accessibility()
當頁面的content-desc值有多個相同的時候,可以使用該方法。以定位計算器上的÷號為例:

elements = self.driver.find_elements_by_accessibility_id(u"除")
elements[0].click()

5、find_element_by_class_name()
當頁面的class有值的時候,可以使用該方法,以向計算器上的輸入框輸入數字為例:

input=self.driver.find_element_by_class_name("android.widget.EditText")
input.send_keys("10")

6、find_elements_by_class_name()
當頁面的class有多個值的時候,可以使用該方法,以向計算器上的輸入框輸入數字為例:

input=self.driver.find_elements_by_class_name("android.widget.EditText")
input[0].send_keys("10")

7、press_keycode()
該方法是發送鍵值,以下是部分鍵值,例如手機上的按鍵“0”它的鍵值是7,手機上的按鍵“1”,它的鍵值是8。若要了解更詳細的android鍵值表,可以訪問此鏈接:http://www.cnblogs.com/larack/p/4223465.html

image.png

以下是計算器計算10除以5的具體代碼:

#輸入10
self.driver.press_keycode(8)
self.driver.press_keycode(7)
#點擊除號
element = self.driver.find_element_by_accessibility_id(u"除")
element.click()
#輸入5
self.driver.press_keycode(12)
#點擊=號
equal = self.driver.find_element_by_id("equal")
equal.click()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,310評論 25 708
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,523評論 0 17
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,556評論 2 45
  • 今天很累但很充實,看到瘦小的她馬不停蹄的忙,又些帶動自己前近,跨年愉快!
    melody靜閱讀 183評論 0 0
  • 內存百家姓, 當年政府令。 如今又放開, 歷史背景訂。
    草原騎手閱讀 237評論 0 0