Appium自動獲取 Android 裝置 id 和包名等資訊(python)
使用 Appium,每次換裝置換 APP 測試時要在指令碼修改很多東西,很麻煩,要自動獲取可以通過指令獲得的資訊,使用該起來也方便。
最終效果是每次只需要修改測試的包的路徑和包名就可以自動刪除舊的安裝包,並獲得 Android 裝置 id 和包名等 Appium 需要的資訊。
適用於:Python + Android
使用到了 aapt,該工具在 SDK/tools 目錄下,如果你沒有設定環境變數,那需要進入該目錄下才能執行 aapt 命令,如果設定了環境變數則可以在任何目錄下執行 aapt 命令了。配置 aapt 環境變數的方法,請自行百度。
下面上程式碼:
# -*- coding: utf-8 -*-
from appium import webdriver
# 使用正規表示式篩選裝置 id
import re
# 使用time.sleep(xx)函式進行等待
import time
# 使用 os 模組呼叫命令
import os
# 測試的包的路徑和包名
appLocation = " /Users/Downloads/app.apk "
# 讀取裝置 id
readDeviceId = list(os.popen('adb devices').readlines())
# 正規表示式匹配出 id 資訊
deviceId = re.findall(r'^\w*\b', readDeviceId[1])[0]
# 讀取裝置系統版本號
deviceAndroidVersion = list(os.popen('adb shell getprop ro.build.version.release').readlines())
deviceVersion = re.findall(r'^\w*\b', deviceAndroidVersion[0])[0]
# 讀取 APK 的 package 資訊
appPackageAdb = list(os.popen('aapt dump badging ' + appLocation ).readlines())
appPackage = re.findall(r'\'com\w*.*?\'', appPackageAdb[0])[0]
# 刪除以前的安裝包
os.system('adb uninstall ' + appPackage)
desired_caps = {
'platformName': 'Android',
'platformVersion': deviceVersion,
'deviceName': deviceId,
'appPackage': appPackage,
'appWaitPackage': appPackage,
'app': appLocation,
'appActivity': appPackage + ".PageSplash",
command_executor = "http://localhost:4723/wd/hub"
相關文章
- Android獲取硬體裝置資訊Android
- android 獲取裝置IP和Mac地址AndroidMac
- Flutter獲取IOS bundle id和Android應用包名FlutteriOSAndroid
- iOS 獲取裝置uuid,公網ip,手機ip等資訊iOSUI
- 在Java中獲取Android端登陸的裝置資訊JavaAndroid
- Android-獲取app包資訊異常AndroidAPP
- IOS檢視包名、版本號、裝置資訊、簽名、程式IDiOS
- android appium微信等自動化的那些坑兒AndroidAPP
- Android Studio生成簽名檔案,自動簽名,以及獲取SHA1和Android
- iOS 獲取本機的裝置資訊UIDeviceiOSUIIDEdev
- linux驅動之獲取裝置樹資訊Linux
- 獲取Android裝置DeviceId與反Xposed HookAndroiddevHook
- 獲取Android裝置唯一標識碼Android
- Appium Android 獲取WebView元素的方法APPAndroidWebView
- android 5.0以上獲取前臺應用的包名Android
- android 6.0下獲取當前呼叫介面的包名Android
- 程式獲取Android簽名Android
- 獲取本地IP和mac等資訊Mac
- iOS獲取裝置資訊的常用方法iOS
- Android系統資訊獲取Android
- js獲取裝置資訊的方法彙總JS
- Android獲取應用基本資訊Android
- Android獲取手機配置資訊Android
- android GPS 獲取城市資訊Android
- Android逆向之旅---Android中如何獲取在非Root裝置中獲取應用隱私資料Android
- android如何獲取證書籤名?Android
- Android中獲取應用程式(包)的資訊-----PackageManager的使用(一)AndroidPackage
- 如何獲取iOS裝置的UDIDiOS
- Android 通過名稱獲取資源IDAndroid
- APPIUM-Android自動化元素定位方式APPAndroid
- IOS 特定於裝置的開發:獲取額外的裝置資訊iOS
- Android中獲取當前位置資訊Android
- [Android]獲取整體APP CPU資訊AndroidAPP
- Appium常用操作之「Toast提示資訊獲取」APPAST
- Python自動化測試之獲取配置檔案資訊Python
- 【轉】 android獲取裝置唯一標識完美解決方案Android
- Android12以上獲取裝置網路訊號資料Android
- Android Studio修改專案名和包名Android