天天看點

如何使用appium desktop 擷取Android APP 控件的id

背景:

随着Android 版本的更新,你會發現我們之前用的最新的版本的Appium 1.5.3無法啟動我們的 Android APP 在模拟器為7.0的裝置上,是以我們有必要了解如何使用 appium desktop 來擷取Android APP 控件的id.也由于擷取在自動化測試過程中擷取控件的資訊(比如id)是非常關鍵的一步。

環境搭建

  • 安裝Appium Desktop 的windows版本(https://github.com/appium/appium-desktop/)
  • 我的pc 是Windows7
  • 我安裝的Appium Desktop 是1.2.4
  • 我用的Android 模拟器為GenyMotion

如何使用GenyMotion模拟器在appium desktop上擷取 Android APP控件的id

  • 手動啟動一個GenyMotion 模拟器
  • 輸入Host為127.0.01,點選Start Server按鈕,如下圖1:
    如何使用appium desktop 擷取Android APP 控件的id
  • 點選 Start Inspector Session,如下圖2
    如何使用appium desktop 擷取Android APP 控件的id
  • 添加platformName,deviceName,apppackage,platformVersion,appActivity,app的值,如下圖3:
    如何使用appium desktop 擷取Android APP 控件的id
  • 點選 Start Session,你會看到Inspector Session page,并且選擇頁面最上面的一排按鈕最左邊的那個,然後點選APP上的控件,就可以看到相應控件的資訊。如下圖4:
    如何使用appium desktop 擷取Android APP 控件的id

##如何使用saucelabs在appium desktop上擷取 Android APP控件的id

  • 如果你不想在你的windows上安裝android 模拟器,然而你有saucelabs 賬号,你可以啟動sauce的模拟器擷取APP 控件的id
  • 用如下指令上傳Android App 到saucelabs:
curl  -u "Sauce Username":"Sauce Access Key" -X POST -H "Content-Type: application/octet-stream" https://saucelabs.com/rest/v1/storage/"Sauce Username"/"app-release.apk"?overwrite=true --data-binary @"C:\app-release.apk"
           
  • 在appium desktop 添加Sauce Username 和Sauce Access Key,并添加相關的Desired Capabilities,如下圖:
    如何使用appium desktop 擷取Android APP 控件的id
  • 點選Start session 按鈕,你會看到你本地的appium 啟動了 Android APP 如上圖4.這裡就不再貼圖。
  • 與此同時登入saucelabs你發現已經啟動了一個模拟器(如下圖5),你可以點選進去操作和你操作本地的GenyMotion一樣。
    如何使用appium desktop 擷取Android APP 控件的id

如何使用testObject在appium desktop上擷取 Android APP控件的id

  • 登入testObject,上傳APP,你會發現每個APP 有個testobject_app_id
  • testObject 包含各種各樣的真機,你隻要添加要啟動的裝置的Desired Capabilities,輸入TestObject API Key,選擇 testObject Data Center,點選Start Session就可以安裝app到testObject上的真機,然後擷取你點選控件的相關資訊比如id
  • 在appium desktop 添加Desired Capabilities,輸入TestObject API Key,後點選Start session 按鈕如下圖:
    如何使用appium desktop 擷取Android APP 控件的id
  • 與此同時登陸testObject,點選“Open Devices”如下圖6,你可以使用這個真機并擷取你所安裝的app控件的相關資訊(比如id)。

    [外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-ofySR0vY-1571800908470)(https://img-blog.csdn.net/20171031150726750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2xpbl9saW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

##總之:

以上我們講了三種方式利用 Appium Desktop 擷取Android APP控件相關的資訊。第一:在本地電腦安裝GenyMotion,然後使用 Appium Desktop 擷取 Android APP 的id;第二利用saucelabs的模拟器,然後使用Appium Desktop 擷取 Android App 的 id;第三種,利用testObject的真機,然後使用Appium Desktop 擷取Android App 的id。你可以根據自己情況選擇其中之一,來擷取Android APP的控件id,來在自動化測中使用。

繼續閱讀