关于appium:appium中executeScript使用

背景 在做moblink自动化测试工作时,遇到以下问题,导致测试用例编写遇到问题。须要在mobLink APP中分享一条链接,并且应用多种浏览器关上链接唤醒mobLinkAPP。 appium提供了一个办法能够在浏览器中关上URL driver.get(String URL); 此办法执行时,appium会运行以下命令,能够看到前面带了一个被测APP的包名。 因为appium在设置capabilities时,package只能设置被测试APP的package。因为被测试APP不是浏览器,所以此办法无奈关上URL。 解决办法 应用driver.executeScript(script,args),此办法能够执行adb的所有命令,比方获取CPU、内存耗费等。 具体应用办法如下 driver.executeScript("mobile:shell",ImmutableMap.of("command","am force-stop com.mob.moblink.demo")); (强行杀掉moblink的过程),应用此办法,在启动appium时必须将Relaxed Security 勾上 在其余浏览器中关上URL,应用以下办法 driver.executeScript("mobile:deepLink",ImmutableMap.of("url","http://www.baidu.com","package","com.android.chrome")); (在谷歌浏览器中关上百度页面) 能够看到日志,前面的包名曾经变成了谷歌浏览器的包名了。 executeScript具体反对和应用阐明 http://appium.io/docs/en/comm...

June 10, 2021 · 1 min · jiezi

关于appium:Win10Appium逍遥模拟器

参考wujun_jj:《Win7+Appium+ AndroidStudio+逍遥模拟器》看见我书了吗:《Appium连贯逍遥模拟器,解决Timing Out》转角的枫叶:《Appium配合android模拟器》 根底环境别离装置Android-SDK、逍遥模拟器 1. 模拟器 adb版本确认确认Android-SDK的adb和模拟器的adb是雷同版本 cd D:\Program Files\Microvirt\MEmucmd > adb versionAndroid Debug Bridge version 1.0.31cd D:\Program Files\Android\Android-Sdk\platform-toolscmd > adb versionAndroid Debug Bridge version 1.0.41Version 31.0.1-7187441Installed as D:\Program Files\Android\Android-Sdk\platform-tools\adb.exe把 /MEmu/的 adb.exe 改名为 xy_adb.exe,SDK的/platform-tools/adb.exe 复制到 MEmu 目录下。启动模拟器多开,关上/新建 一个模拟器。 2. 连贯adb调试a. 怎么查看模拟器占用的是哪个端口呢?顺次关上:工作管理器–性能–关上资源监视器–网络–侦听端口 拉倒‘M’结尾的中央,看到逍遥模拟器占了4个端口(我用多开,开了两个模拟器),后两个端口是安卓7.1.2版本占用的我本地关上2个看到的端口是 21503、21513,连贯 > adb devices -l> adb connect 127.0.0.1:21503> adb devices -lList of devices attached127.0.0.1:21503 device product:VOG-AL00 model:VOG_AL00 device:VOG-AL00 transport_id:2b. 获取模拟器连贯参数关上指标app,获取以后利用启动参数> adb shellVOG-AL00:/ # dumpsys activity | grep mFocusedActivitydumpsys activity | grep mFocusedActivity mFocusedActivity: ActivityRecord{67f2665 u0 com.ss.android.ugc.aweme/.splash.SplashActivity t27}关上零碎设置,获取版本# 安卓版本7.1.2# 型号VOG_AL003. 启动参数{ "platformName": "Android", "platformVersion": "7.1.2", "deviceName": "VOG-AL00", "appPackage": "com.ss.android.ugc.aweme", "appActivity": "com.ss.android.ugc.aweme.splash.SplashActivity"}

May 6, 2021 · 1 min · jiezi

关于appium:Win10安装使用appium

指标装置 mitmproxy 、appium ,自动测试、爬虫必备。 1.根底环境软件装置管理工具 choco: https://chocolatey.org/installhttps://docs.chocolatey.org/en-us/choco/commands/find # 更新本人choco upgrade chocolatey -y# 查看本地装置的软件列表choco list --local-onlyapp主动测试工具 appium桌面版: choco install -y appium-desktop或 https://github.com/appium/appium-desktop/releases/download/v1.20.2/Appium-windows-1.20.2.exepython 3.9 + 2.7Python、pip最新版: choco install -y pyenv; refreshenv; pyenv install list; choco install -y python python2; refreshenv; python -V。choco装置的版本比pyenv新,应用2.7编译。这里批改 Python39 的 python.exe => python3.exe,使零碎变量 python -V=2.7,python3 -V=3.9。后续装置opencv4nodejs时要应用默认的python2。 nodejs 12.22.1 choco install -y nvm; refreshenv; nvm list available; nvm install 12.22.1; nvm use 16 。已测16、15的高版本opencv4nodejs装置胜利、但编译不到依赖。java8choco install openjdk8 。高版本Android依赖有问题。装置mitmproxy:pip install mitmproxy ...

April 30, 2021 · 2 min · jiezi

关于appium:iOS-定位方式-iOSNsPredicateString-详解

前言因为应用id、className、AccessibilityId定位形式较为简单,少数状况下,在同一个页面,都不是惟一存在的,不能辨认一个元素。而 xpath定位形式在 xcui 底层原生不反对,由 appium 额定反对的,定位速度很慢,而且有时候定位不到元素的状况存在。综上所述,在 iOS 的 UI 自动化中,应用原生反对的iOSNsPredicateString定位形式是最好,反对也是最好的。 定位形式仅反对 iOS 10或以上(底层须要应用 XCUITest 框架),可反对元素的单个属性和多个属性定位,举荐应用。一个元素有这些属性:type、value、name、label、enabled、visible,有些元素的属性只有以上的局部属性,如下图所示,可依据这些属性进行元素定位。 元素属性的介绍type:元素类型,与className作用统一,如:XCUIElementTypeStaticTextvalue: 个别不必name:元素的文本内容,可用作 AccessibilityId定位形式,如:测试420班级群label:绝大多数状况下,与 name 作用统一enabled:元素是否可点击,个别值为true或者falsevisible:元素是够可见,个别值为true或者false 定位形式元素的定位形式都是一个属性+运算符+值模式存在 比拟运算符:>,<,==,>=,<=,!=可用于数值和字符串的比拟,如:name>100 或name == '测试'范畴运算符:IN,BETWEEN可用于数值和字符串的范畴核查如:name BETWEEN {3,10},name IN {'Alan','May'}字符串相干:CONTAINS、BEGINSWITH、ENDSWITH蕴含某个字符串,如:label CONTAINS '测试'以某个字符串结尾,如:label BEGINSWITH '420'以某个字符串完结,如:label ENDSWITH '班级群'PS:在三个关键字后加上[c]不辨别大小写,可用于字母的校验;[d]不辨别发音符号,即没有重音符号($、#、%等);[cd]即不辨别大小写,也不辨别发音符号,如: name CONTAINS[c] ABcdname CONTAINS abcdname CONTAINS ABCD# 1和3、2和3,的定位都是等同的,留神前面两个没带`[c]`的不相等通配符:LIKE通配符也承受[cd],?代表一个字符,*代表多个字符如:一个元素的label属性为 label LIKE '420测试班级群'label LIKE '420测?班级群'label LIKE '420??班级群'label LIKE '42?测试班?群'label LIKE '*试班级群'label LIKE '420测试班*'label LIKE '42*级群'label LIKE '4*试*群'以上这么多种文本都能够被辨认为同一个元素。 正则表达式:MATCHES如:以4结尾,以群完结, label MATCHES '^4.+群$'PS:具体正则表达式语法,请百度一下,你就晓得 以一种属性定位元素能够用元素的属性:type、value、name、label、enabled、visible,进行定位: type == XCUIElementTypeStaticText,label CONTAINS '测试'label LIKE '*试班级群'enabled == truevisible == false以两种或两种以上属性定位元素就是以上单个属性定位用符号AND连接起来即可。如: ...

March 16, 2021 · 1 min · jiezi

关于appium:Appium的安装及简单的使用介绍

本文首发于:行者AIAppium是一个自动化开源工具,反对iOS、Android和Windows桌面平台上的原生、挪动Web和混合利用的自动化。Appium是跨平台的:它容许你用同样的API对多平台(iOS、Android、Windows)写测试。做到在iOS、Android和Windows测试套件之间复用代码。 1. 下载安装及环境配置1.1 装置python装置Appium-Python-Client库能够应用pip命令进行装置pip install Appium-Python-Client,装置实现后在python中运行此段代码from appium import webdriver校验是否装置胜利 。 1.2 装置Android SDK(1)在官网上下载Android Studio,其中蕴含了Android SDK,网页下拉到底部的Command line tools only,下载其中的windows版本,下载实现后解压,CMD命令行中cd到bin目录下,输出sdkmanager "platfrom-tools" "platforms;android-28" "build-tools;28.0.3"执行装置组件,过程中弹出Accept?(y/N),输出y回车即可。 (2)组件装置实现之后,执行以下步骤将Android SDK退出到环境变量中。 在零碎环境变量中创立ANDROID_HOME变量,值为SDK装置的根目录门路,例如:E:\android_sdk将%ANDROID_HOME%\platform-tools退出到环境变量Path中验证设置胜利否:CMD命令行下输出adb version回车,能够看到以后adb的版本信息,阐明Android SDK曾经装置并配置胜利1.3 装置JDK(1)在oracle官网下载安装JDK,装置JDK8及以上的版本。 (2)装置实现后,设置JDK的环境变量。 在零碎环境变量中创立JAVA_HOME变量,值为JDK装置的跟目录门路,例如:C:\Program Files\Java\jdk1.8.0_231在零碎环境变量中创立CLASSPATH变量,值为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar在Path变量中增加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin验证JDK环境配置是否胜利,CMD命令行下输出java -version回车,能够看到以后JDK的版本信息,阐明JDK曾经装置并配置胜利1.4 装置appium server(1)在appium官网上下载Appium Desktop进行装置,找到与本人应用的零碎对应的版本,本次所有操作都是在windows上进行的。 (2)装置实现后,启动appium,host和port默认即可,在Edit Configuration中将Android SDK和Java JDK加到环境变量中。 (3)设置好后保留并重启Appium,而后启动服务,呈现以下画面,阐明你的appium server曾经失常启动了,能够开始真机测试了。 2. 真机测试2.1 真机设置USB连贯手机,关上手机开发者模式,关上开发者选项中的USB调试、USB装置,小米手机还须要关上USB调试(平安设置),而后在CMD命令行输出adb devices回车,如果呈现了手机的设施号,阐明连贯胜利。 2.2 设置Appium(1)点击Start Inspector Session对进行Desired Capabilities的配置,在JSON Representation中输出以下json数据点击保留进行疾速的配置,也能够在右边一项一项的增加。platformName、platformVersion、deviceName、appPackage、appActivity这五个参数是必填项。 {"platformName": "Android", # 申明是ios还是Android零碎"platformVersion": "8.1.0", # Android内核版本号"deviceName": "MI_5X", # 连贯的设施名称"appPackage": "com.tencent.qqmusic", # apk的包名"appActivity": ".activity.AppStarterActivity", # apk的launcherActivity"resetKeyboard": True,"noReset": True # 在开始会话之前不要重置应用程序状态}以上数据通过adb命令获取,获取appPackage与appActivity时须要将app启动,获取命令如下: ...

January 5, 2021 · 1 min · jiezi

关于appium:Appium之元素定位和UiAutomator表达式

保持原创输入,点击蓝字关注我吧作者:清菡博客:oschina、云+社区、知乎等各大平台都有。 目录一、常见属性的用法 1.怎么用 resource-id?2.其它属性二、通过截图就能够看到元素的属性,那怎么元素定位呢? 1.appium - app 页面元素定位2.UiAutomator 的表达式3.什么时候用 UiAutomator 呢?4.和 Web 自动化的定位有啥区别?三、问题 1.元素与属性的区别?2.app 一进模拟器就解体3.如果遇到点击 uiautomatorviewer 就闪退一、常见属性的用法xpath 绝对定位:如果绝对定位中这个元素是有 id 的,这个 id 是惟一的,xpath 定位中优先通过 id 来定位。 class 属性对应的值是元素类型(是一个文本视图工具),Web 自动化中元素类型代表 Input、image、button 这样的标签名。 1.怎么用 resource-id?resource-id 是惟一的,然而在 App 页面中并不相对惟一。大部分状况下是惟一的,小局部状况下是反复的。 如果一个页面中,元素的款式十分像,那很有可能它们的 id 就是一样的。UIAutomator Viewer 这个自带的工具是不能看出这个 id 是不是相对惟一的。 假如 resource-id 是惟一的,用绝对定位这样定位: 和 Web 自动化一样的玩法:元素类型[@属性名称=属性值] 这里的 class 不是 Web 网页中的 class 属性了,这里代表它的标签名和元素类型(它是一个图片、一个文字、链接还是一个按钮呢?学会辨别)。 如果 resource-id 不是惟一的,那么下面那个表达式是不够的,还会追加到下层的 Linearlayout、RelativeLayout、包含先人外面的一些层级都会放进来。 如果没有装置“降级 uiaumatorview-增加元素定位”就只能靠本人来判断。看下其它和它长得很像、元素的格局、格调、款式、页面布局都和它截然不同的元素,看下各位的 id 是否全都是一样的。 如果用了“降级 uiaumatorview-增加元素定位”,能够依据它的表达式本人来判断。 ...

October 5, 2020 · 3 min · jiezi

关于appium:Ui-Automator-框架和Ui-Automator-Viewer你会用吗附送必备adb命令拿走不谢

<section id="nice" data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="font-size: 16px; padding: 0 10px; word-spacing: 0px; word-break: break-word; word-wrap: break-word; text-align: left; line-height: 1.25; color: #2b2b2b; font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light; letter-spacing: 2px; background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%); background-size: 20px 20px; background-position: center center;"><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>保持原创输入,点击蓝字关注我吧</span><span class="suffix" style="display: none;"></span></h3><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001190127.jpg" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">作者:清菡博客:oschina、云+社区、知乎等各大平台都有。</p><h1 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 25px;"><span class="prefix" style="font-weight: bold; color: #40B8FA; display: none;"></span><span class="content" style="display: inline-block; font-weight: bold; color: #40B8FA;">目录</span><span class="suffix" style="display: inline-block; font-weight: bold; color: #40B8FA;"></span></h1><ul data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">一、往期回顾</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">二、理解 adb 命令<ul style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: square;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">1.adb 的应用和配置</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">2.如果当初同时有 2 个设施呢,怎么指定装置到哪个设施上?</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">3.Android 8.0 adb shell dumpsys activity activities | findstr mFocusedActivity 获取以后的 activity 显示空的</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">4.logcat 日志文件</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">5.logcat 缓冲区</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">6.logcat 日志文件剖析</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">7.logcat 过滤器</section></li></ul></section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">三、UiAutomator 框架<ul style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: square;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">1.UI Automator 框架的次要特点</section></li></ul></section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">四、遇到的坑<ul style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: square;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">1.遇到报错啥的 ,要学会找要害的信息,百度报错日志</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">2.为什么设置 path?</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">3.UI Automator Viewer 报错</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">4.安卓 sdk 的坑</section></li></ul></section></li></ul><h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 22px; display: block; border-bottom: 4px solid #40B8FA;"><span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">一、往期回顾</span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span></h2><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">前 3 篇文章给大家解说了 Appium 环境装置,Appium 理念以及实现形式(四大点),第一个 app 自动化脚本。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">日志中很分明的通知了每一步该干什么,我做了什么,是如何来做这件事件的,两头我用到了什么(aapt、adb 等)。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">日志中能够看到:关上利用后,如果没有后续的操作,它会被动敞开以后的会话。不像 Web 自动化要你本人关它才会关。一分钟之内没有向它发送任何命令,它就会认为你不再须要和我通信了,完结本次会话。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001102601.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 22px; display: block; border-bottom: 4px solid #40B8FA;"><span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">二、理解 adb 命令</span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span></h2><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">这个难度也不大,把握罕用的 adb 命令就能够了。要用 adb 命令要保障模拟器或者真机有一个是能让电脑辨认的。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">模拟器自身是 root 权限的,真机须要开启 usb 调试模式(不同的手机设置这里会有差别,可自行百度)。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb 是安卓才有的,ios 没有。</p><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>1.adb 的应用和配置</span><span class="suffix" style="display: none;"></span></h3><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>指标</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">1、把握 adb 装置配置的形式。2、把握 adb 应用办法及常见命令。</p><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>1.1何为 adb?</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb(Android Debug Bridge)是 android sdk 的一个工具,是个调试工具。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb 是用来连贯安卓手机和 PC 端的桥梁,要有 adb 作为二者之间的维系,能力让用户在电脑上对手机进行全面的操作。当然,usb 线作为两头工具。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">Android 的初衷是用 adb 这样的一个工具来帮助开发人员在开发 android 利用的过程中更快更好的调试 apk,因而 adb 具备装置卸载 apk、拷贝推送文件、查看设施硬件信息、查看应用程序占用资源、在设施执行 shell 命令等性能</p><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>1.2adb 组成</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>客户端 client:<span>」</span> 运行在你的电脑上,你能够通过 shell 来调用起一个客户端。其余 Android 工具例如 ADT 插件、DDMS 都能够创立出一个客户端。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>服务器 server:<span>」</span> 运行在你电脑的后盾,负责管理 client 和 daemon 进行通信。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>守护过程 daemon:<span>」</span> 运行在模拟器或者 Android 设施的后盾。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>验证:<span>」</span> 关上 windows 命令行,输出 adb 命令。</p><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>1.3真机</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">实在的 Android 设施(手机/平板电脑):</p><ul data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">1、须要确保你的手机曾经通过 USB 线连贯到电脑;</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">2、通过驱动软件,驱动精灵/驱动人生等,将你的 Android 手机驱动装置好;</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">3、进入到手机,找到设置->对于手机->点击五下版本号->将对应的开发者选项关上(留神:因为手机型号不同,如小米,魅族,华为这些,可能打开方式略微有差别,如果不分明,自行百度怎么关上本人手机的开发者选项);</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">4、退出到上一级菜单,进入到开发者选项,找到 USB 调试模拟器将其关上;</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">5、还有最初一步,一般来说会进去一个容许调试的对话框,咱们也须要勾选上,不然 adb devices 命令检测不到设施。</section></li></ul><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>1.4 adb 常见命令</span><span class="suffix" style="display: none;"></span></h4><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001180816.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>1.5手机门路怎么来看呢?</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">安卓手机内核是 Linux 零碎,须要晓得 Linux 零碎中的罕用操作,以及 Linux 零碎中的基本知识。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">需把握 Linux 零碎中的常用命令、文件夹的权限、门路表白、解压、根本的环境部署、tomcat、搭建数据库。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">如果想在手机上找到一个手机门路,就必须晓得它在外部的文件寄存。手机文件治理里有很多文件夹,每一层是做什么的,显示门路。首先进入手机外部零碎环境,也就是 Linux。用 adb shell。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001112307.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">这样就曾经进入到另外一个环境了。这个时候曾经进入手机外部的一个零碎中去了。不同的模拟器进来,后面的名字是不太一样的。既然是 root 过去了,进来就是 root 权限。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">如果是真机,没有这种 root 的话,那就是账号进来的用户都是普通用户。是有权限能力管制的,不是所有的数据文件你都具备权限去拜访的。所以须要理解 Linux 零碎中对权限的设置与管制,批改用户权限。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">Linux 中的单斜杠是最开始的根目录,所有的文件都放在这个目录上面。通过ls -l能够看到上面有比拟多的文件:</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001113144.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">如果不是 root 账号,是一般账号个别进来的是以后的用户目录。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">sdcard(存储空间)在 Linux 零碎中就是一个文件夹来表白。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001113846.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">cd sdcard基本上你的用户数据都会存储在这个目录下。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb pull 不能在 shell 命令下进行的。输出exit。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb pull /sdcard/shumei.txt D:xiazai</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001115329.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001115339.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">所以先确认手机上的门路,从手机上拉取文件要晓得本人的文件在哪。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>命令:<span>」</span></p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb push C:Users18210Pictureslink.jpg /sdcard/</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">cd sdcard</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">ls -l</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001120447.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001120504.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb logcat有点像个服务,会刷一堆进去,如果要看残缺的日志,间接看必定是不不便看的。须要把它输入到本地。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">先 ctrl+c 退出。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">Linux 中将内容输入到本地文件是用>中文名叫做“重定向”。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb logcat > D:xiazaiadb_logcat.txt</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">>>双箭头是会追加不会笼罩,>单箭头是你下次再去输出的时候就间接把原来的笼罩了。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">按 ctrl+c 将日志进行输入后就能够看到:</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001122113.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">之所以输入日志是不便定位问题的,如果你看不懂日志里的谬误提醒,你能够将下载下来的日志发给开发。</p><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>2.如果当初同时有 2 个设施呢,怎么指定装置到哪个设施上?</span><span class="suffix" style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">加上-s具体能够百度。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb install xxx.apk 为了获取 apk 的安装包所在地址,能够间接把 apk 拖到 cmd 的窗口获取,返回 success 就阐明装置胜利了!</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb uninstall com.tencent.mobileqq利用包名(留神:不是利用名称)包名能够adb shell pm list packages -3获取用户包名。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb shell dumpsys activity | find "mFocusedActivity" 查看前台利用 activity 名(安卓 8.0 以下用这个命令)</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">(找以后前台正在流动的 activity,<span>「</span>也就是以后肉眼看到的这个利用的界面<span>」</span>)每一个界面都有一个 activity 的名字。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">能够获取到以后正在流动的包名以及 activity 名称。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">但不代表就是入口页面的名称,入口是你启动 App 的时候进入的 activity。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">进入一个 app 之后可能默认在欢送页面,把欢送页面解决实现后就进入了首页。首页解决实现之后,就再进入别的页面。</p><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>3.Android 8.0 adb shell dumpsys activity activities | findstr mFocusedActivity 获取以后的 activity 显示空的</span><span class="suffix" style="display: none;"></span></h3><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>靠谱链接:</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">http://www.bubuko.com/infodet...</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">安卓 8.0 以下用命令adb shell dumpsys activity activities | findstr mFocusedActivity</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">安卓 8.0 以上用命令adb shell dumpsys activity activities | findstr mResumedActivity</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001135739.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">做自动化的时候,有的时候须要通过 activity 的名称来判断以后是否在这个页面当中。所以须要用这条命令失去对应的名字写到用例当中。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb connect/disconnect 通过 wifi 进行近程连贯手机进行调试 (前提是 adb 须要设置一下对应的端口之后,再去通过 wifi 连贯)</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb kill-server终止 adb 服务</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb start-server启动 adb 服务。通常在 adb 遇到问题时,与 adb kill-server 一起应用。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001140936.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb shell pm list packages列出所有包名</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">-f 列出所有 apk 门路及包名-s 列出零碎 apk 门路及包名-3 列出用户 apk 门路及包名</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb shell pm list packages -3</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001141720.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">App 自动化在安卓版本 6 以上就是用的 uiautomator2 作为驱动。所以它会把服务装到手机上。而后开启 uiautomator2 对应的 Bootstrap 进入监听状态,与咱们的 Appium 进行通信。</p><h5 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 16px;"><span class="prefix" style="display: none;"></span><span class="content">目录构造:</span><span class="suffix" style="display: none;"></span></h5><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb shell 进入 linux 命令行模式。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">system 分区data 分区sdcard 分区</p><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>4.logcat 日志文件</span><span class="suffix" style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">Android 日志零碎提供了记录和查看零碎调试信息的性能,日志都是从各种软件和一些零碎的缓冲区中记录下来的,缓冲区能够通过 logcat 命令来查看和应用。</p><h5 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 16px;"><span class="prefix" style="display: none;"></span><span class="content">4.1应用形式</span><span class="suffix" style="display: none;"></span></h5><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">[adb] logcat [<option>] ... [<fiter-spec>]..</p><h5 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 16px;"><span class="prefix" style="display: none;"></span><span class="content">4.2 logcat 是以如下结尾的:</span><span class="suffix" style="display: none;"></span></h5><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001143048.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">开发者选项,有个选项叫做“日志记录器缓冲区大小”,默认是 256K,日志是循环写入环形缓冲区的。在通常状况下,写满时最旧的日志会被删除以给新输入的日志留内存空间。</p><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>5.logcat 缓冲区</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">Android log 输出量微小,特地是通信零碎的 log,因而,Android 把 log 输入到不同的缓冲区,目前定义了四个 log 缓冲区:</p><ul data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">Radio:输入通信零碎的 log</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">System:输入零碎组件的 log </section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">Events:输入 event 模块的 log</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">Main:所有 Java 层的 log(不属于下面 3 层的 log)</section></li></ul><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">如想输入通信零碎的 log:adb logcat -b radio</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001143156.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>6.logcat 日志文件剖析</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">输入的日志格局如下所示:</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001142839.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><h5 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 16px;"><span class="prefix" style="display: none;"></span><span class="content">6.1由六五局部组成:</span><span class="suffix" style="display: none;"></span></h5><ol data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: decimal; font-size: 15px; color: #595959;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">写下日志时的工夫,如上中 01-11 09:39:35.209。</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">优先级,在 Android 中,日志的优先级从低到高分以下几种:</section></li></ol><ul data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">V—Verbose(啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中应用,不可在公布产品中输入)</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">D—Debug(调试,用于调试的信息,能够在公布产品中敞开,比拟常见)</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">I—Info(信息,个别提示性的音讯)</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">W—Warning(正告)</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">E—Error(谬误,曾经呈现可影响运行的谬误,比方利用 crash 时输入的日志)</section></li></ul><ol start="3" data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; list-style-type: decimal; font-size: 15px; color: #595959;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">标签(tag),表明日志发起者和不便日志的过滤筛选,如上中 ActivityManager。</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">PID(过程 ID),如上中 491。</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">注释,本日志的主体内容。</section></li></ol><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>7.logcat 过滤器</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">logcat 中信息太多,为了缩小不想要日志的输入,能够建设一个过滤器,过滤语法:</p><ul data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">tag:priority (标签:优先级)</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">如:ActivityManager:W 示意过滤标签为 ActivityManager 优先级为 W 以下的日志。</section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;">如想过滤所有标签能够应用号代替::E</section></li></ul><h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 22px; display: block; border-bottom: 4px solid #40B8FA;"><span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">三、UiAutomator 框架</span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span></h2><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">UI 自动化测试框架,安卓挪动端 app。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">要求:Android4.3 以上。</p><ul data-tool="mdnice编辑器" style="margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959; list-style-type: circle;"><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;"><p style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">提供了一系列 API:执行 UI 测试在零碎或者第三方 app 下面。</p></section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;"><p style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">容许在被测设施上执行操作,比方关上零碎设置菜单。</p></section></li><li><section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; font-size: 14px; font-weight: normal; color: #595959;"><p style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">适宜编写黑盒自动化测试。</p></section></li></ul><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>1.UI Automator 框架的次要特点</span><span class="suffix" style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">1、元素定位:UI Automator Viewer. 扫描、剖析待测利用的 UI 组件的图像工具。2、元素操作:Accessing device state. 在指标设施和 app 上的各种操作。3、元素辨认:UI Automator APIs. 在多个应用程序中捕捉和操作 UI 组件。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>官网文档:<span>」</span></p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">https://developer.android.com...</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">UiAutomator 框架是 Java 实现的,所以作为 Python 的学习者理解它的外部实现就好了。须要把握 Java 的类和对象、语法,本人写 Java 版本的测试用例能力用它。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">用这个框架能够实现安卓 App 的自动化测试。它也有个元素定位的工具:</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">UI Automator Viewer</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001143738.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">这个工具是给 App 截图的。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">UI Automator Viewer 对一个 App 的首页进行定位就必须先进行截图。一个内部的工具想对模拟器或者真机上一个 APP 的页面进行截图须要权限。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">所以 UI Automator Viewer 可能在 App 上进行截图胜利的前提是adb devices命令可能辨认到这个设施,有权限下来操作才能够。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">这个工具关上后是空白的。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001151541.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">如果提醒远端设施不存在,可能是设施被他人占用了(运行 Appium 代码的同时关上了 UI Automator Viewer 进行截图),等到 Appium server 中将以后会话敞开了,退出了这个 App。保障截图的时候这个设施没有被任何其余货色占用能力失常应用。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001160108.jpg" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">UI Automator 只能辨认安卓原控件,图中源码都是它的控件。不能辨认 Web 网页,所以看不到 html 的元素表白、标签对这样的货色。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">这么多箭头还有这么多 0、1,看到了 FrameLayout、LinearLayout,这个货色就叫做<span>「</span>布局<span>」</span>。这里属于开发常识,如果不懂布局也不影响做元素定位和做自动化测试。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001161859.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001162451.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">布局就是布局外面这么多的元素,横着放叠着放,还是放在框里。所以就是各种布局追加。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>布局外面能看到的就是它的元素。<span>」</span></p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">例如:控件的名字叫做 TextView(视图)。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001164018.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001164034.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">页面中每一个元素都有元素类型、属性。UI Automator Viewer 截图中的属性都是有的,值不肯定有。text 在 Web 自动化中是文本内容不叫做属性,然而在 App 中它也是属性。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>值是空的就证实以后这个属性(元素)是没有文本内容的。个别文本元素是有文本内容的。做 App 元素定位的时候能够通过文本内容来定位。<span>」</span></p><h2 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 22px; display: block; border-bottom: 4px solid #40B8FA;"><span class="prefix" style="display: flex; width: 20px; height: 20px; background-size: 20px 20px; background-image: url(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; color: #40B8FA; font-size: 20px; margin-left: 25px;">四、遇到的坑</span><span class="suffix" style="display: flex; box-sizing: border-box; width: 200px; height: 10px; border-top-left-radius: 20px; background: RGBA(64, 184, 250, .5); color: rgb(255, 255, 255); font-size: 16px; letter-spacing: 0.544px; justify-content: flex-end; float: right; margin-top: -10px; box-sizing: border-box !important; overflow-wrap: break-word !important;"></span></h2><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>1.遇到报错啥的 ,要学会找要害的信息,百度报错日志。</span><span class="suffix" style="display: none;"></span></h3><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>例如这个报错:</span><span class="suffix" style="display: none;"></span></h4><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001110211.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001110228.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001110241.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001110252.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001154128.jpg" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">就能够失常应用了。</p><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>2.为什么设置 path?</span><span class="suffix" style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">比方在 cmd 中输出 adb,它从你们配置的零碎环境变量目录上面去找,所以配置环境变量就配置到目录级别就能够了。</p><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>3.UI Automator Viewer 报错</span><span class="suffix" style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">Unexpected error while obtaining UI hierarchyjava.lang.reflect.InvocationTargetException</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>起因是 ANDROID 8 以上 SDK 的兼容性问题。<span>」</span></p><h4 data-tool="mdnice编辑器" style="margin-top: 30px; margin-bottom: 15px; padding: 0px; font-weight: bold; color: black; font-size: 18px;"><span class="prefix" style="display: none;"></span><span class="content" style="height: 16px; line-height: 16px; font-size: 16px;"><span style="background-image: url(https://my-wechat.mdnice.com/fullstack-3.png); display: inline-block; width: 16px; height: 16px; background-size: 100%; background-position: left bottom; background-repeat: no-repeat; width: 16px; height: 15px; line-height: 15px; margin-right: 6px; margin-bottom: -2px;"></span>解决办法,靠谱链接:</span><span class="suffix" style="display: none;"></span></h4><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">https://blog.csdn.net/u010871...;depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.edu_weight</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">首先得在 D 盘新建一个 app.uix 和 app.png,再运行如下命令:</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb shell uiautomator dump /sdcard/app.uix</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb pull /sdcard/app.uix D:/app.uix</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb shell screencap -p /sdcard/app.png</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">adb pull /sdcard/app.png D:/app.png</p><h3 data-tool="mdnice编辑器" style="padding: 0px; color: black; font-size: 17px; font-weight: bold; text-align: center; position: relative; margin-top: 20px; margin-bottom: 20px;"><span class="prefix" style="display: none;"></span><span class="content" style="border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;"><span style="width: 30px; height: 30px; display: block; background-image: url(https://my-wechat.mdnice.com/fullstack-2.png); background-position: center; background-size: 30px; margin: auto; opacity: 1; background-repeat: no-repeat; margin-bottom: -8px;"></span>4.安卓 sdk 的坑</span><span class="suffix" style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">我装置安卓 sdk,之前用镜像始终没问题,明天死活不行,应该是镜像不能用了。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">其实也能够间接下载,要害啊我没看懂报错(就是下载包那里一堆 x,而后还有英文报错 Google 啥的具体没看懂,图也忘了截图了,这个和镜像没关系,镜像的报错是在 log 里,这里不是,就是不能下载)。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">始终认为它提醒我要用镜像,百度进去也只有这种状况,而后呢,这个报错其实是通知我每个包品种都要点击承受证书,而后点击 install 就能够失常下载啦。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">之前文章中环境变量那样配置没有错。</p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;"><span>「</span>留神:当前下载啥先不配置镜像,间接下载试试能不能胜利。<span>」</span></p><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin: 10px 0px; letter-spacing: 2px; font-size: 14px; word-spacing: 2px;">安卓 sdk 包没下载全的状况下配置环境变量也没用的。所以不要认为本人的环境变量配错了,可能是包没下载全。</p><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001154321.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001154331.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure><figure data-tool="mdnice编辑器" style="margin: 0; margin-top: 10px; margin-bottom: 10px; display: flex; flex-direction: column; justify-content: center; align-items: center;"><img src="https://gitee.com/qinghanstudy/qinghan/raw/master/img/20201001154339.png" alt style="max-width: 100%; border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: 2px 4px 7px #999;"></figure> ...

October 2, 2020 · 28 min · jiezi

关于appium:PythonAppiumPyCharm环境配置及调试

首先我的电脑是Windows 10零碎,64bit,所以对应的软件都合乎此版本要求。1.装置PyCharm:首先下载pycharm 2020.1破解版本,而后进行装置,装置步骤根本都是下一步下一步就行; 2.装置JDK:JDK版本最好是1.8,装置完JDK要配置环境变量,配置实现即可; 3.Android SDK:装置Android SDK并且配置环境变量,配置实现即可; 4.装置Python:下载Python3以上的版本,装置并且配置实现即可; 5.装置Appium-Python-Client:关上cmd, 输出:pip install Appium-Python-Client,如果有多个python版本的话,在pip前面加上2或者3,对应Python版本即可; 6.装置appium:我下载的版本是:AppiumForWindows_1_4_16_1.zip,下一步下一步装置实现即可;把所有的软件和配置环境配置实现后开始进行测试。 关上PyCharm,新建->python file->命名为:hello.py,USB连贯真机;拷贝其代码: from appium import webdriverimport time server启动参数desired_caps = {} 设施信息desired_caps['platformName'] = 'Android'desired_caps['platformVersion'] = '5.0'desired_caps['deviceName'] = '192.168.1.110:5555' app信息desired_caps['appPackage'] = 'com.android.settings'desired_caps['appActivity'] = '.Settings'driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) time.sleep(2)driver.quit()保留完后点击“Run”执行,发现会报错:Failed to establish a new connection: [WinError 10061] 因为指标计算机踊跃回绝,无奈连贯。起因是Appium未正确关上,要把Appium点击启动并且配置文件要配置正确才行;配置完Appium后执行“Run”,手机关上“设置”,而后退出。 platformName、platformVersion、appPackage、appActivity这几个参数如何进行查找:关上“cmd”,输出:adb shell getprop ro.build.version.release,返回Android版本为5.0;输出:adb devices -l,返回手机型号;List of devices attached10654eed device product:hltezm model:SM_N9008V device:hlteSM_N9008V即为手机型号;输出:adb shell dumpsys activity | findstr "mResume",返回包名和启动名;mResumedActivity: ActivityRecord{29981040 u0 com.android.settings/.Settings t449}com.android.settings即为包名;.Settings为利用的名称;以上为明天的总结,比拟抽象,具体配置可留言,谢谢。 ...

September 23, 2020 · 1 min · jiezi

关于appium:PythonAppium运行简单的demo你需要理解Appium运行原理

保持原创输入,点击蓝字关注我吧 作者:清菡博客:oschina、云+社区、知乎等各大平台都有。 目录一、Appium 的理念 四个准则1.Web-Selenium 的运行原理2.Appium 运行原理二、Appium 面板三、一段简略的代码来关上利用 1.前提条件2.怎么辨认 app?3.查看安卓 App 包名的链接4.Appium 官网介绍5.为什么有平台版本号?6.aapt 命令获取利用包名和入口 activity7.代码一、Appium 的理念四个准则:你没有必要为了自动化而从新编译你的利用或者以任何的形式批改它。你不应该被限度在特定的语言或框架上来编写运行测试。挪动端自动化框架在自动化接口方面不应该从新造轮子。(Appium 中没必要把 http 通信过程,命令的执行过程以及点击输出等专用的操作再写一遍,Appium 间接继承 Selenium,把现有的货色全副拿过去)挪动端自动化框架应该开源,岂但在名义上而且在精神上和实际上都要实至名归。1.Web-Selenium 的运行原理: 通过 Http 通信,没有扭转浏览器拜访零碎的属性,只有拜访就能够了。Appium 做自动化也是如此。 2.Appium 运行原理: 安卓和 Ios 都有本人自带的自动化测试框架。因为 Ios 和安卓是不同的语言编写的,所以用 Appium(Appium 是跨平台跨语言)。 版本不一样,用的自动化框架也不一样。自动化框架不一样,API 接口也不一样。 Appium server 去跟挪动端的货色通信,首先的确是 Ios 还是安卓。即便确认了是安卓,也得确认下是 UiAutomator 的 Api 还是 Instrumentation 的 Api。 个别只反对支流版本,其它版本须要用户本人反对了。 启动一个模拟器或者真机就有一套自带的自动化框架。 Appium 发送命令到手机,手机上有个 Bootstrap 接管命令。Bootstrap 是一个服务:Ip 地址和端口做的一个监听。 Appium server 启动后失去代码发送的命令后,不会间接发给手机。 比方你在安卓 8 的设施上做个什么操作,关上一个 APP,Appium server 查看下目前设施上有没有安卓 8 的。如果有,它就把这个命令发送给手机端。 ...

September 20, 2020 · 2 min · jiezi

关于appium:Appium-desktopCould-not-find-a-connected-Android-device

Error信息An unknown server-side error occurred while processing the command. Original error: Could not find a connected Android device in 20853ms. 起因C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe 无奈找到夜神模拟器 解决办法备份C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools删除C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools 中的 adb.exe备份D:\software\Nox\bin复制D:\software\Nox\bin中的nox_adb.exe 到 \platform-tools中, 批改命名为nox_adb.exe启动夜神模拟器点击Appium desktop的start session

August 15, 2020 · 1 min · jiezi