Python-自动化测试

目录

前言

参考文章

Python自动化(安卓篇)

配置appium

联调夜神模拟器和appium

(1) 启动appium

(2) 配置安卓SDK

(3) 调试模拟器!!!

(4) 需要测试的软件APP,是否没有apk、有apk

(5) 实战代码剖析

(6) 元素定位实战&理论

Python自动化(安卓&win11篇)

Python自动化(IOS篇)


前言

为啥写这篇文章?不告诉你哈。

参考文章

目的链接
手机APP自动化Appium原理与安装 | 白月黑羽 (byhy.net)
python+夜神模拟器自动化

CSDN博主「浅醉樱花雨」的原创文章

Python3 + Appium + 安卓模拟器 实现APP自动化测试,并生成测试报告_浅醉樱花雨的专栏-CSDN博客

appium-inspector使用教程Appium Inspector使用_BUG1314的专栏-CSDN博客_appium inspector
win11安装安卓子系统微软 Win11 安卓子系统已支持运行IT之家、支付宝等 APK 应用(附手动侧载安装教程攻略) - IT之家 (ithome.com)

Python自动化(安卓篇)

配置appium

(1)白月黑羽的版本,一开始本人使用他提供的sdk。 白月黑羽版的安卓SDK如下图所示,但是他的 uiautomateviewer.bat(安卓查看APP界面元素 的工具会闪退。

所以本人自己安装了

(2) 安装 appium-inspector

 参考链接

目的链接
appium-inspectorappium/appium-inspector: A GUI inspector for mobile apps and more, powered by a (separately installed) Appium server (github.com)

appium-inspector已经独立于 appium,所以需要从github下载。

联调夜神模拟器和appium

(1) 启动appium

(2) 配置安卓SDK

参考文章

目的链接
SDK国内下载地址AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载
教程Android SDK的下载与安装 - 菜鸟学飞ing - 博客园 (cnblogs.com)
知乎教程Android SDK下载安装及配置教程 - 知乎

前言

1.目前官网上已经没有单独的SDK下载安装包了。目前官网推荐的是下载包含有Android SDK的Android Studio。Android Studio 的一个功能非常强大的用来做安卓开发试调的官方出品的工具。Ps:官网下载,需科学上网。官网下载传送门

2.由于这个Android Studio 的安装包过大且官网下载需要FQ,而咱们在用Appium 的时候实际上只需要用到SDK 工具而已。所以推荐大家去另外一个国内的Android 工具的下载网站下载。传送门

SDK Tools

SDK Platform-Tools

这是 adb, fastboot 等工具包。把解压出来的 platform-tools 文件夹放在 android sdk 根目录下,并把 adb所在的目录添加到系统 PATH 路径里,即可在命令行里直接访问了 adb, fastboot 等工具。

 Build-Tools
这是Android开发所需的Build-Tools,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/build-tools 文件夹即可。

【配置】

SDK Manager.exe。下面4个选项少一不可。

【最终】 

(1)本人的

(2)白月黑羽版的安卓SDK如下图所示,但是他的 uiautomateviewer.bat(安卓查看APP界面元素 的工具会闪退。

 【补充】

更换Android SDK在线更新镜像服务器来下载安装:

​1、北京化工大学镜像服务器地址:

IPv4: http://ubuntu.buct.edu.cn/ 端口:80

IPv4: http://ubuntu.buct.cn/ 端口:80

IPv6: http://ubuntu.buct6.edu.cn/ 端口:80

2、大连东软信息学院镜像服务器地址:

http://mirrors.neusoft.edu.cn 端口:80

3、郑州大学开源镜像站:

http://mirrors.zzu.edu.cn 端口:80

使用方法:

(1) 启动 Android SDK Manager ,打开主界面,依次选择『Tools』、『Options...』,弹出『Android SDK Manager - Settings』窗口;

(2) 在『Android SDK Manager - Settings』窗口中,在『HTTP Proxy Server』和『HTTP Proxy 
Port』输入框内填入上面镜像服务器地址(不包含http://,如下图)和端口,并且选中『Force https://... sources to be fetched using http://...』复选框。设置完成后单击『Close』按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;

(3) 依次选择『Packages』、『Reload』。

【win11配置环境变量】

打开如下图

把%ANDROID_HOME%\platform-tools、%ANDROID_HOME%\tools添加到Path环境变量。 

ANDROID_HOME
D:\WorkSpace\android-sdk-windows

%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools

检测是否配置成功。打开命令行窗口,输入adb。出现如下图所示内容则配置成功:

C:\Users\AlienwareKgx>adb
Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as D:\WorkSpace\android-sdk-windows\platform-tools\adb.exe

(3) 调试模拟器!!!

1.打开安装目录,进入到bin目录(本人的路径:D:\Program Files\Nox\bin),备份adb.exe文件为adb_bak.exe;备份该目录的nox_adb.exe文件为nox_adb_bak.exe。
2.从Android SDK里(本人的路径:D:\WorkSpace\androidsdk\platform-tools目录下)复制adb.exe到D:\Program Files\Nox\bin下面;再复制一份adb.exe并重命名为nox_adb.exe。
3.启动模拟器,在D:\WorkSpace\androidsdk\platform-tools目录下鼠标右键打开控制台,执行nox_adb.exe connect 127.0.0.1:62001(每次重启模拟器最好都执行一次),然后执行adb devices,看到如下信息就表示成功。

C:\Users\AlienwareKgx>d:

D:\WorkSpace\androidsdk\platform-tools>cd D:\Program Files\Nox\bin

D:\Program Files\Nox\bin>nox_adb.exe connect 127.0.0.1:62001
* daemon not running; starting now at tcp:5037
* daemon started successfully
connected to 127.0.0.1:62001

D:\Program Files\Nox\bin>adb devices
List of devices attached
127.0.0.1:62001 device

【知识点补充】

连接好以后,打开控制台命令行窗口, 执行 adb devices -l 命令来列出连接在电脑上的安卓设备。
如果输出 类似如下的内容:

List of devices attached
4d0035dc767a50bb        device product:t03gxx model:GT_N7100 device:t03g

表示电脑上可以查看到 连接的设备,就可以运行自动化程序了。
上述例子是手机连接电脑,不是模拟器哈。

在模拟器里安装测试apk文件,直接将apk文件拖到模拟器里即可,本人使用白月黑夜提供的apk。

最好开启“开发者模式”

设置好手机的大小

继续在刚刚的控制台窗口里输入如下代码,其中D:\apk\wv.apk是测试apk的完整路径。 

aapt dump badging D:\apk\wv.apk

效果展示:

D:\Program Files\Nox\bin>aapt dump badging D:\apk\wv.apk

package: name='com.example.jcy.wvtest' versionCode='1' versionName='1.0'
sdkVersion:'19'
targetSdkVersion:'29'
uses-permission:'android.permission.INTERNET'
application: label='鐧芥湀榛戠窘' icon='res/mipmap-mdpi-v4/ic_launcher.png'
launchable activity name='com.example.jcy.wvtest.MainActivity'label='' icon=''
uses-feature:'android.hardware.touchscreen'
main
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ca' 'da' 'fa' 'ja' 'nb' 'de' 'af' 'bg' 'th' 'fi' 'hi' 'vi' 'sk' 'uk' 'el' 'nl' 'pl' 'sl' 'tl' 'am' 'in' 'ko' 'ro' 'ar' 'fr' 'hr' 'sr' 'tr' 'cs' 'es' 'it' 'lt' 'pt' 'hu' 'ru' 'zu' 'lv' 'sv' 'iw' 'sw' 'bs_BA' 'fr_CA' 'lo_LA' 'en_GB' 'bn_BD' 'et_EE' 'ka_GE' 'ky_KG' 'km_KH' 'zh_HK' 'si_LK' 'mk_MK' 'ur_PK' 'sq_AL' 'hy_AM' 'my_MM' 'zh_CN' 'pa_IN' 'ta_IN' 'te_IN' 'ml_IN' 'en_IN' 'kn_IN' 'mr_IN' 'gu_IN' 'mn_MN' 'ne_NP' 'pt_BR' 'gl_ES' 'eu_ES' 'is_IS' 'es_US' 'pt_PT' 'en_AU' 'zh_TW' 'be_BY' 'ms_MY' 'az_AZ' 'kk_KZ' 'uz_UZ'
densities: '160' '240' '320' '480' '640' '65534'

可以看到安装包的信息都打印出来了,记录下【package: name】为'com.example.jcy.wvtest'、【launchable activity name】为 'com.example.jcy.wvtest.MainActivity'这两个名称,待会儿写测试脚本的时候要用。
注意,如果模拟器重启了,需要执行

nox_adb.exe connect 127.0.0.1:62001

(4) 需要测试的软件APP,是否没有apk、有apk

(4.1)没有apk

如果你应用已经安装在手机上了,可以直接打开手机上该应用,进入到你要操作的界面,然后执行

adb shell dumpsys activity recents | find "intent={"


会显示如下,最近的 几个 activity 信息:

intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=tv.danmaku.bili/.ui.splash.SplashActivity}
intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000300cmp=com.huawei.android.launcher/.unihome.UniHomeLauncher}
intent={flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity bnds=[48,1378][10322746]}
intent={flg=0x10000000 cmp=com.tencent.mm/.ui.LauncherUI}
D:\Program Files\Nox\bin>adb shell dumpsys activity recents | find "intent={"

【本人实战】【在夜神模拟器打开哔哩哔哩(无需登录)】
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=tv.danmaku.bili/.MainActivityV2}
intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.vphone.launcher/.launcher3.Launcher}
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10a00000 cmp=io.appium.settings/.Settings}
intent={act=android.intent.action.DELETE dat=package:com.tencent.android.qqdownloader#com.tencent.pangu.link.SplashActivity flg=0x10800000 cmp=com.android.packageinstaller/.UninstallerActivity}
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.mysoft.yunke.ydxs/com.mysoft.core.activity.LauncherActivity}
intent={act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10800100 cmp=com.android.settings/.FallbackHome}

 其中第一行就是当前的应用,我们特别关注最后

cmp=tv.danmaku.bili/.ui.splash.SplashActivity

【本人实战】cmp=tv.danmaku.bili/.MainActivityV2

应用的package名称就是 tv.danmaku.bili

应用的启动Activity就是 .ui.splash.SplashActivity

(4.2)有apk

(1)如果你已经获取到了 apk,在命令行窗口执行

d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging d:\tools\apk\bili.apk | find "package: name="

输出信息中,获得“应用的package名称”

package: name='tv.danmaku.bili' versionCode='5531000' versionName='5.53.1' platformBuildVersionName='5.53.1' compileSdkVersion='28' compileSdkVersionCodename='9'

(2)在命令行窗口执行

d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging d:\tools\apk\bili.apk | find "launchable-activity"

输出信息中,获得“应用的启动Activity”

launchable-activity: name='tv.danmaku.bili.ui.splash.SplashActivity'  label='' icon=''

(5) 实战代码剖析

import time

from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey

# 【目的】 bilibili自动化
# 【说明】 需要配合bilibili的apk使用
# 【python语法说明】 (1)webdriver.Chrome() 表示 类.对象() 对象实例化 (2) r'字符串' 表示不存在转义
# 【date】 20211006 14:53:00
# 【author】 xiaoke
class TestBilibili_01():

    def __init__(self, name):
        # __init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
        self.name = name

    # 测试开始前执行的方法
    def setUp(self):
        desired_caps = {
            'platformName': 'Android',  # 被测手机是安卓
            'platformVersion': '7.1.2',  # 手机安卓版本 又称:平台名称
            'deviceName': 'xxx',  # 设备名,安卓手机可以随意填写 【设备名称。如果是真机,在'设置->关于手机->设备名称'里查看,模拟器推荐填写 127.0.0.1:62001】
            'appPackage': 'tv.danmaku.bili',  # 启动APP Package名称 又称:apk的包名
            'appActivity': '.MainActivityV2',  # 启动Activity名称
            'unicodeKeyboard': True,  # 使用自带输入法,输入中文时填True
            'resetKeyboard': True,  # 执行完程序恢复原来输入法
            'noReset': True,  # 不要重置App
            'newCommandTimeout': 6000,
            'automationName': 'UiAutomator2'
            # 'app': r'd:\apk\bili.apk',
        }

        # 连接Appium Server,初始化自动化环境
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)  # 连接Appium
        # self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

        # 设置缺省等待时间
        self.driver.implicitly_wait(8)

    # 结束后执行的方法
    def setDown(self):
        self.driver.quit()

    def work(self):
        # 如果有`青少年保护`界面,点击`我知道了`
        iknow = self.driver.find_elements_by_id("text3")
        if iknow:
            iknow.click()

        # 根据id定位搜索位置框,点击
        self.driver.find_element_by_id("expand_search").click()

        # 根据id定位搜索输入框,点击
        sbox = self.driver.find_element_by_id('search_src_text')
        sbox.send_keys('白月黑羽')
        # 输入回车键,确定搜索
        self.driver.press_keycode(AndroidKey.ENTER)

        # 选择(定位)所有视频标题
        elements = self.driver.find_elements_by_id("title")

        for element in elements:
            # 打印标题
            print(element.text)



if __name__ == '__main__':

    # 创建 TestBilibili_01 类的第一个对象
    bili = TestBilibili_01("Bilibili")
    bili.setUp()
    input('**** Press to quit..')
    bili.setDown()

【效果】

【剖析0】报错汇总

 adb连接夜神模拟器报错adb server version(36) doesn‘t match this client(41);killing...报错的问题
问题原因:Android SDK的adb版本和模拟器的adb版本不一致

【adb报错如下】
D:\Program Files\Nox\bin>adb devices
List of devices attached
adb server version (41) doesn't match this client (36); killing...
* daemon started successfully *

【程序报错】
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not find a connected Android device in 20151ms.
adb连接夜神模拟器报错adb server version(36) doesn‘t match this client(41);killing...报错的问题
问题原因:Android SDK的adb版本和模拟器的adb版本不一致

解决办法
1、将Android SDK目录\platform-tools下的adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll替换到夜神模拟器Nox\bin目录下三个文件

2、将模拟器adb路径下的nox_adb.exe文件重命名为nox_adb_bak.exe,再复制一份Android SDK的adb.exe文件到模拟器adb路径下并重命名为Nox_adb.exe

3、替换完成后,重启模拟器,不行的话,重启电脑就ok了

最好也更新一下。 

安装client编程库
根据原理图, 我们知道自动化程序需要调用客户端库和 Appium Server 进行通信。

因为我们介绍Python语言开发,所以当然是用pip安装,如下

python -m pip install --upgrade pip
pip install appium-python-client


D:\Program Files\Nox\bin>pip install appium-python-client
Requirement already satisfied: appium-python-client in d:\program files\python\python38\lib\site-packages (1.3.0)
Requirement already satisfied: selenium<4,>=3.14.1 in d:\program files\python\python38\lib\site-packages (from appium-python-client) (3.141.0)
Requirement already satisfied: urllib3 in d:\program files\python\python38\lib\site-packages (from selenium<4,>=3.14.1->appium-python-client) (1.26.7)

【剖析1】为啥要这么写?

 # 连接Appium Server,初始化自动化环境
self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)  # 连接Appium

【解答】本人编写的python程序是客户端,appium server是服务端(内嵌nodeJs) 。所以是客户端请求服务端,http服务,而服务的url为 http://127.0.0.1:4723/wd/hub (个人猜测wd 就是webDriver)

 

【剖析2】定位元素

【解答】

代码规则

从示例代码可以发现,和Selenium Web自动化一样,要操作界面元素,必须先定位(选择)元素。

Appium是基于Selenium的,所以 和 Selenium 代码 定位元素的基本规则相同:

  • find_element_by_XXX 方法,返回符合条件的第一个元素,找不到抛出异常

  • find_elements_by_XXX 方法,返回符合条件的所有元素的列表,找不到返回空列表

  • 通过 WebDriver 对象调用这样的方法,查找范围是整个界面

  • 通过 WebElement 对象调用这样的方法,查找范围是该节点的子节点

界面元素查看工具

做 Selenium Web 自动化的时候,要找到元素,我们是通过浏览器的开发者工具栏来查看元素的特性,根据这些特性(属性和位置),来定位元素

Appium 要自动化手机应用,同样需要工具查看界面元素的特征。

常用的查看工具是: Android Sdk包中的 uiautomateviewer 和 Appium Desktop 中的 Appium Inspector

uiautomateviewer

安卓查看APP界面元素,最常用的就是 Android SDK 中的工具 uiautomateviewer ,它在SDK目录目录 的 tools\bin 目录中

D:\WorkSpace\androidsdk\tools\uiautomatorviewer.bat

本人的版本
D:\WorkSpace\android-sdk-windows\tools\uiautomatorviewer.bat

和Selenium一样,我们要定位选择元素,也是根据元素的特征,包括

  • 元素的属性
  • 元素的相对位置(相对父元素、兄弟元素等)

Appium Inspector

Appium Desktop 中的 Appium Inspector 也可以查看元素。它的一个优点是可以直接验证选择表达式是否能定位到元素。

127.0.0.1
4723
/wd/hub
{
  "platformName": "Android",
  "appium:platformVersion": "7.1.2",
  "appium:deviceName": "xxx",
  "appium:appPackage": "tv.danmaku.bili",
  "appium:appActivity": ".MainActivityV2",
  "appium:unicodeKeyboard": true,
  "appium:resetKeyboard": true,
  "appium:noReset": true,
  "appium:newCommandTimeout": 6000,
  "appium:automationName": "UiAutomator2"
}

platformName: 平台名称设置为Android
platformVersion:填写当前连接的Android设备的系统版本,必须正确
deviceName: 填写Android设备名称,不需要正确
app: 路径,从本地选择要测试应用的apk路径
appPackage: 测试app的package
appActivity: 测试app的StartActivity
unicodeKeyboard: 布尔值 true则禁用手机键盘
noReset: 布尔值true 则不重新安装apk,false则重新安装apk
newCommandTimeout: 6000

【剖析3】uiautomatorviewer.bat闪退

【解答】

D:\WorkSpace\android-sdk-windows\tools\uiautomatorviewer.bat (已加上被本人修改的)具体内容如下:


@echo off
rem Copyright (C) 2012 The Android Open Source Project
rem
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem      http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

rem don't modify the caller's environment
setlocal

rem Set up prog to be the path of this script, including following symlinks,
rem and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0

rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
cd /d %~dp0

rem Get the CWD as a full path with short names only (without spaces)
for %%i in ("%cd%") do set prog_dir=%%~fsi

rem Check we have a valid Java.exe in the path.
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF

set jarfile=uiautomatorviewer.jar
set frameworkdir=.

if exist %frameworkdir%\%jarfile% goto JarFileOk
    set frameworkdir=lib

if exist %frameworkdir%\%jarfile% goto JarFileOk
    set frameworkdir=..\framework

:JarFileOk

set jarpath=%frameworkdir%\%jarfile%

if not defined ANDROID_SWT goto QueryArch
    set swt_path=%ANDROID_SWT%
@REM 替换为自己的路径
@REM set swt_path=D:\WorkSpace\android-sdk-windows\tools\lib\x86_64
    goto SwtDone

:QueryArch

    for /f "delims=" %%a in ('"%java_exe%" -jar %frameworkdir%\archquery.jar') do set swt_path=%frameworkdir%\%%a

:SwtDone

if exist "%swt_path%" goto SetPath
    echo SWT folder '%swt_path%' does not exist.
    echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
    exit /B

:SetPath
set javaextdirs=%swt_path%;%frameworkdir%

call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*

@REM 不会马上闪退了,可以看到报错。得输入回车才会退出bat程序
@REM pause

(1)uiautomatorviewer.bat鼠标右键选编辑(本人选择pycharm打开编辑),第一行为空行,最后一行输入:pause。文件另存为 下面的编码格式选为ANSI,保存文件。(本人没有改编码格式) 

这样报错就不是马上闪退了,可以看到报错。得输入回车才会退出bat程序。(感兴趣可以去学习bat)

(2)闪退原因之一:找不到swt.jar

【解决措施一】修改uiautomatorviewer.bat

D:\WorkSpace\android-sdk-windows\tools\lib\x86_64
if not defined ANDROID_SWT goto QueryArch
@REM     set swt_path=%ANDROID_SWT%--废弃
    set swt_path=D:\WorkSpace\android-sdk-windows\tools\lib\x86_64
    goto SwtDone

【解决措施二】不修改uiautomatorviewer.bat,增加环境变量

 上述步骤后,发现uiautomatorviewer.bat还是报错。无法创建java虚拟机吧

 (3)闪退原因之一:jdk版本不是推荐的1.8

 查看jdk,发现是12的,赶紧卸载重装jdk1.8(java8)

JAVA_HOME
D:\Program Files\Java\jdk1.8.0_301

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

 【结果】终于打开了uiautomatorviewer,是真的傻逼这个过程,艰辛。

如果点击后没显示,可能需要重启模拟器,真机的话可以拔usb再查回来。

【剖析3.1】uiautomatorviewer经常出现报错?

【解答】

因为它和appinum server 会有冲突,建议把appinum server关闭重启(不要关闭uiautomatorviewer哈),然后点击 Device Screenshot。

【剖析4】appium-inspector配置后报错

Failed to create session. The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource

【解答】

self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)  # 连接Appium

本人是没有配置http://127.0.0.1:4723/wd/hub 这句话(即没有配置appium server)导致的报错。

 如下图所示配置

 2233娘们出现了。

(6) 元素定位实战&理论

Python自动化(安卓&win11篇)

不要紧,我们在开始菜单右键,使用 Windows 终端 (管理员) 命令进入,切换到安装包所在目录,执行如下安装命令:

add-Appxpackage "MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_neutral___8wekyb3d8bbwe.Msixbundle"

如果没有 ADB 怎么办?给你一个 adb-full.zip。下载解压后把压缩包内所有文件丢到你的 C:/Windows 目录即可。

本质:安装platform-tools_r31.0.3-windows.zip 。但是不推荐上述方案,C盘装了好多垃圾。还是老老实实,安装安卓SDK的方式吧。

--安装ABD前

PS C:\Users\keguo> d:
PS D:\> cd D:\BaiduNetdiskDownload
PS D:\BaiduNetdiskDownload> adb version
adb : 无法将“adb”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,
然后再试一次。
所在位置 行:1 字符: 1
+ adb version
+ ~~~
    + CategoryInfo          : ObjectNotFound: (adb:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

--解压platform-tools_r31.0.3-windows.zip 的内容到C:/Windows后

PS D:\BaiduNetdiskDownload> adb version
Android Debug Bridge version 1.0.41
Version 31.0.3-7562133
Installed as C:\Windows\adb.exe

PS D:\BaiduNetdiskDownload> adb connect 127.0.0.1:58526
* daemon not running; starting now at tcp:5037
* daemon started successfully
failed to authenticate to 127.0.0.1:58526

----骚等一分钟后

PS D:\BaiduNetdiskDownload> adb connect 127.0.0.1:58526
already connected to 127.0.0.1:58526

PS D:\BaiduNetdiskDownload> adb devices
List of devices attached
127.0.0.1:58526 device

--安装安卓APK

PS D:\BaiduNetdiskDownload> d:
PS D:\BaiduNetdiskDownload> cd D:\BaiduNetdiskDownload
PS D:\BaiduNetdiskDownload> ls


    目录: D:\BaiduNetdiskDownload


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2021/10/4     12:50                bilibili
-a----        2021/10/22      0:21       37400432 9FCB836EF1721242FD601800A01F36F5.apk
-a----        2021/10/22      0:17        1813710 Amazon.comServicesLLC.AmazonAppstore_0.0.1.0_neutral___bvztej1py64t8.
                                                  Msixbundle
-a----         2021/10/3     13:50        6545512 BANDIZIP-SETUP.exe
-a----         2021/10/3     14:32      177687872 jdk-8u301-windows-x64.exe
-a----        2021/10/21     23:15     1298766098 MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_neutral
                                                  ___8wekyb3d8bbwe.Msixbundle
-a----        2021/10/22      0:27       11912013 platform-tools_r31.0.3-windows.zip
-a----         2021/10/3     11:22     3957501952 ProPlus2019Retail.img
-a----         2021/10/4     17:55       71244600 typora-setup-x64.exe


PS D:\BaiduNetdiskDownload> adb install .\9FCB836EF1721242FD601800A01F36F5.apk
Performing Streamed Install
Success
PS D:\BaiduNetdiskDownload>

Python自动化(IOS篇)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值