背景:
随着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:
- 點選 Start Inspector Session,如下圖2
- 添加platformName,deviceName,apppackage,platformVersion,appActivity,app的值,如下圖3:
- 點選 Start Session,你會看到Inspector Session page,并且選擇頁面最上面的一排按鈕最左邊的那個,然後點選APP上的控件,就可以看到相應控件的資訊。如下圖4:
##如何使用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,如下圖:
- 點選Start session 按鈕,你會看到你本地的appium 啟動了 Android APP 如上圖4.這裡就不再貼圖。
- 與此同時登入saucelabs你發現已經啟動了一個模拟器(如下圖5),你可以點選進去操作和你操作本地的GenyMotion一樣。
如何使用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 按鈕如下圖:
-
與此同時登陸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,來在自動化測中使用。