Appium环境搭建,华为nova8鸿蒙系统(包括环境安装,环境配置)(一)
1.安装代码工具包
pip install appium-python-client 
2.安装JDK
参考链接:
ant+jmeter+jenkins从0实现持续集成(Windows)-CSDN博客
3.下载并安卓SDK
下载地址:AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载
注意:adb这个工具很重要,
存在于sdk的 **\SDK安装路径\sdk\platform-tools 目录下
上面的地址是android sdk下载的国内网址,有梯子的可以翻墙找国外的下载,我是用国内的这个网址。找到下面sdk tools

这里选择的sdk tools工具,两个版本都可以,如果有更新会有不同,根据各自需求选择版本即可,上面的版本号我不太清楚所以选了下面的。
这里注意exe和zip的区别,我两个都试过,exe安装会直接安装在c盘,没得你选。如果比较在意这点的人建议和我一样选zip文件。

解压后目录

直接双击运行这个SDK Manager.exe文件,开始安装
如下,正处于安装过程中。

有几个必须要安装的,如上图所示的,Tools文件夹里面的Android SDK Tools(这个我们在之前的一步已经下载好了的,一般不会让你再安装了,不过有可能会让你更新),然后就是Android SDK Platform-tools和Android SDKBuild-tools,注意只需要下载最新的版本就行了

然后就是API的选择了。这里提供了Android 2.2到Android 8.x的很多版本的API,新手直接选一个最新的就算了,因为Android是向下兼容的。其他的以后你要用到了在下载就行了(因为下载安装的速度实在太慢)
如果你选择其他,比如我选择的是9,那你要把默认选择的那个最新的勾掉
这里需要说明的是,如果你以后不打算用模拟器调试,而是一直用真机来调试的话,那么就可以不用装“system images“了。不过新手的话,不知道怎么选择,还是建议直接全部勾上吧

有一个没有安装成功,重新安装了几次,也没成功;反正是图片没安装成功,没成功就算了

看到后面显示installed就代表安装成功了。
最后就是extras文件夹中的东西了
理论上来说,extras中的东西如果网速允许,时间充沛的话,就都下载了吧,因为都是好东西。不过一开始安装的话,可以只用安装上图中的两个, 下载Android Support Repository和Google USB Driver

安装过程中注意:如果安装的时候发现前面有一个红色的叉叉标志,可以直接点击该行,你会看到一个Accept License选项,直接点击即可,然后再点击Install按钮进行安装,如下正处于安装中,等待完成就可以关闭了。

Accept License直接勾选全部所选内容
点击Install后,
注意:下载可能比较慢,耗费时间长,最重要的是保证网络好,没下载成功的,就重进重选重新下载。
用zip的话,解压到F盘之后,需要配置环境变量。在“我的电脑”右键,“属性”,“高级系统设置”,“高级”,“环境变量”,“系统变量”增加一个环境变量“ANDROID_HOME”,浏览到对饮你解压的android sdk目录。

之后找到环境变量“path”,添加下面几句内容:
F:\网课学习的笔记\appium\android-sdk_r24.4.1-windows\android-sdk-windows\platform-tools
F:\网课学习的笔记\appium\android-sdk_r24.4.1-windows\android-sdk-windows\tools
F:\网课学习的笔记\appium\android-sdk_r24.4.1-windows\android-sdk-windows\build-tools\29.0.3


最后可以检验是否成功配置好环境变量;显示版本,表示安装成功!
Windows图标+R:cmd命令打开命令行窗口,输入adb

4.安装appium server desktop
Appium安装提供两种方式:桌面版和命令行版。其中桌面版又分为 Appium GuI 和 Appium Desktop 。作为初学者,用桌面版,对初学者比较友好。
官网下载地址:Releases · appium/appium-desktop · GitHub
找到Appium-Server-GUI-windows-1.22.3-4.exe

双击Appium-Server-GUI-windows-1.22.3-4.exe安装


等待安装完成。

桌面图标双击打开appium

检查配置
5.手机端设置
以华为手机为例(华为nova8):
① 打开手机USB调试,进入 设置-关于手机,多次点击版本号,激活USB调试

然后在“设置”中,找到“开发人员选项”(或者直接在设置中搜索开发人员选项),打开“USB 调试”,如果有‘“仅充电”模式下允许ADB调试’,就打开,这样就不用设置usb传输模式,如果没有,就下来系统菜单找到“USB的设置”选项卡,点击进入设置传输文件模式即可。

注意:
◆确保电脑上没有其他的adb程序软件,如杀毒软件,安全管家,手机助手
◆确保手机端开发者选项中对应的adb权限全部打开
插入手机usb

然后打开cmd输入adb devices(usb调试打开,用adb应该就可以连上了)
出现如下图所示,代表手机和电脑连上了

如有对应的设备信息,说明连接成功,如果没有多尝试几次,或者换一条usb数据线。
接下来需要通过adb命令获取一系列信息
华为(鸿蒙系统)貌似归于Android一类的,所以配置信息中,platformName是Android。

C:\Users\Admin>adb shell getprop ro.build.version.release
12C:\Users\Admin>adb devices -l
List of devices attached
NBLVB21204000278 device product:ANG-AN00 model:ANG_AN00 device:HWANG transport_id:2C:\Users\Admin>adb shell dumpsys activity | findstr "mResume"
mResumedActivity: ActivityRecord{d95ca3d u0 com.sina.weibo/.MainTabActivity t3783}
第一个命令结果是12,即Android系统版本(platformVersion)是12
第二个命令查看设备的详细信息,ANG-AN00 是设备名(deviceName)
第三个命令可以找到你当前手机正在打开的应用信息,也就是说你要测什么app就提前打开这个app,然后通过第三个命令获取这个app的信息,后面appium连接的时候就会打开这个app。我打开的是微博,所以,
com.sina.weibo 就是你对应appPackage
.MainTabActivity就是对应的appActivity
{"platformName": "Android","platformVersion": "12","deviceName": "ANG-AN00","appPackage": "com.sina.weibo","appActivity": ".MainTabActivity",#自动化引擎"automationName":"UiAutomator2",#确保自动化之后不重置app"noReset": true
}
注:
如果打开的是其他软件,比如说打开了boss直聘

com.hpbr.bosszhipin 就是你对应appPackage
.module.main.activity.MainActivity 就是对应的appActivity
对应appium server配置
{"platformName": "Android","platformVersion": "12","deviceName": "ANG-AN00","appPackage": "com.hpbr.bosszhipin","appActivity": ".module.main.activity.MainActivity",#自动化引擎"automationName":"UiAutomator2",#确保自动化之后不重置app"noReset": true
}
6.环境验证
(1)启动appium server

点击放大镜

如果弹出网址,说明你当前appium的版本比较新,appium server和appium inspector已经分离成两个软体。我所下载的新版appium1.22.3与inspector分离(appium1.22.X后的版本都需要单独下载Appium-Inspector)
所以在该网页下载Appium-Inspector,点击Tags

选择最新版下载

下载后双击Appium-Inspector-2024.6.1-win.exe安装即可(安装简单,自行安装)

安装完成后,桌面多了个图标

双击打开

按照如下设置:


点击start Session后,此时还是不能对微博进行元素定位
选择元素,只能选择整个界面,无法选择单个元素

造成的原因:appium server报错(500,404,304等)

尝试解决一:加上这行(没有完全解决appium报错)
#设置session的超时时间,单位秒,默认60s
"newCommandTimeout":6000,

再点击start session,如下图,可对单个元素定位了(不是每次都可以,待研究)
尝试解决二:可以重启appium server,重新再start session试试
注意:(1)首次点击start session时,要确认有如下信息(微博软件是打开的),否则可能会报错
(2)运行后,手机的变化
首次运行后,手机自动新增两个app
appium-settings(应用会自动安装并启用)桌面会显示
UiAutomator2(Appium优化后的安卓底层自动化驱动)
注意:UiAutomator2再手机桌面是看不到的,得再应用管理才有
以上两个app确保可以自动安装,并开启所有权限

环境安装到此就结束了!!!
最后,如需要安装包,可私聊我,或在资源包中自行下载!!!

相关文章:
Appium环境搭建,华为nova8鸿蒙系统(包括环境安装,环境配置)(一)
1.安装代码工具包 appium python client pip install appium-python-client 2.安装JDK 参考链接: antjmeterjenkins从0实现持续集成(Windows)-CSDN博客 3.下载并安卓SDK 下载地址:AndroidDevTools - Android开发工具 Android…...
【React】React18 Hooks 之 useReducer
目录 useReducer案例1:useReducer不带初始化函数案例2:useReducer带初始化函数注意事项1:dispatch函数不会改变正在运行的代码的状态注意事项2:获取dispatch函数触发后 JavaScript 变量的值注意事项3:触发了reducer&am…...
【cocos creator】2.4.x实现简单3d功能,点击选中,旋转,材质修改,透明材质
demo下载:(待审核) https://download.csdn.net/download/K86338236/89527924 const {ccclass, property } = cc._decorator;const enum box_color {NORMAL = 0,DASHED_LINE = 1,//虚线TRANSLUCENT = 2,//半透明 }@ccclass export default class main extends cc.Component {…...
Android EditText+ListPopupWindow实现可编辑的下拉列表
Android EditTextListPopupWindow实现可编辑的下拉列表 📖1. 可编辑的下拉列表✅步骤一:准备视图✅步骤二:封装显示方法✅步骤三:获取视图并监听 📖2. 扩展上下箭头✅步骤一:准备上下箭头icon图标✅步骤二&…...
dify/api/models/task.py文件中的数据表
源码位置:dify/api/models/task.py CeleryTask 表结构 字段英文名数据类型字段中文名字备注idIntegerID自增主键,任务ID序列task_idString任务ID唯一任务标识statusString状态默认值为 PENDINGresultPickleType结果可为空date_doneDateTime完成日期默认…...
hdu物联网硬件实验3 按键和中断
学院 班级 学号 姓名 日期 成绩 实验题目 按键和中断 实验目的 实现闪灯功能转换 硬件原理 无 关键代码及注释 /* Button Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached…...
pytorch通过 tensorboardX 调用 Tensorboard 进行可视化
示例 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader from torchvision import datasets, transformsfrom tensorboardX import SummaryWriter# 定义神经网络模型 class SimpleCNN(nn.Module):def __init__(self):…...
linux查看目录下的文件夹命令,find 查找某个目录,但是不包括这个目录本身?
linux查看目录下的文件夹命令,find 查找某个目录,但是不包括这个目录本身? Linux中查看目录下的文件夹的命令是使用ls命令。ls命令用于列出指定目录中的文件和文件夹。通过不同的选项可以实现显示详细信息、按照不同的排序方式以及使用不同的…...
单一设备上的 2 级自动驾驶:深入探究 Openpilot 的奥秘
Level 2 Autonomous Driving on a Single Device: Diving into the Devils of Openpilot 单一设备上的 2 级自动驾驶:深入探究 Openpilot 的奥秘 Abstract Equipped with a wide span of sensors, predominant autonomous driving solutions are becoming more m…...
向github远程仓库中push,要求使用token登录
Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. 如上,当向github远程仓库push时,输入github的用户名和密码出现如上错误,要求使用token登录,此时只需要用户…...
最全windows提权总结(建议收藏)
当以低权用户进去一个陌生的windows机器后,无论是提权还是后续做什么,第一步肯定要尽可能的搜集信息。知己知彼,才百战不殆。 常规信息搜集 systeminfo 查询系统信息hostname 主机名net user 查看用户信息netstat -ano|find "3389&quo…...
Could not find Chrome (ver.xxxxx). This can occur if either\n
文章目录 错误解决方法 错误 Could not find Chrome (ver. 119.0.6045.105). This can occur if either\n 1. you did not perform an installation before running the script (e.g. npx puppeteer browsers install chrome) or\n 2. your cache path is incorrectly configu…...
Conmi的正确答案——ESP32-C3开启安全下载模式
IDF版本:4.4.7 注意事项:一旦烧录“安全下载模式”,模组将无法被读取或清理,只能通过eclipse原项目烧录程序进行重新烧录,无法再烧录其他固件。 20240703110201——追加解法,暂时无法解安全下载模式 &…...
从零开始实现大语言模型(一):概述
1. 前言 大家好,我是何睿智。我现在在做大语言模型相关工作,我用业余时间写一个专栏,给大家讲讲如何从零开始实现大语言模型。 从零开始实现大语言模型是了解其原理及领域大语言模型实现路径的最好方法,没有之一。已有研究证明&…...
科普文本分类背后的数学原理——最新版《数学之美》第14、15章读书笔记
新闻分类,或广义上的文本分类,其核心任务是根据文本内容将相似文本聚合在同一类别中。在新闻领域,这意味着将报道划分为财经、体育、军事等不同主题。人类执行此任务时,通过阅读和理解新闻的主旨来进行归类。然而,作者…...
华为云生态和快速入门
华为云生态 新技术催生新物种,新物种推动新生态 数字技术催生各类运营商去重塑并颠覆各行业的商业模式 从业务层面看,企业始终如一的目标是业务增长和持续盈利,围绕这些目标衍生出提质、增效、降本、安全、创新和合规的业务诉求,…...
卷积神经网络——LeNet——FashionMNIST
目录 一、整体结构二、model.py三、model_train.py四、model_test.py GitHub地址 一、整体结构 二、model.py import torch from torch import nn from torchsummary import summaryclass LeNet(nn.Module):def __init__(self):super(LeNet,self).__init__()self.c1 nn.Conv…...
k8s-第十二节-DaemonSet
DaemonSet是什么? DaemonSet 是一个确保全部或者某些节点上必须运行一个 Pod的工作负载资源(守护进程),当有node(节点)加入集群时, 也会为他们新增一个 Pod。 下面是常用的使用案例: 可以用来部署以下进程的pod 集群守护进程,如Kured、node-problem-detector日志收集…...
Mysql-内置函数
一.什么是函数? 函数是指一段可以直接被另外一段程序调用的程序或代码。 mysql内置了很多的函数,我们只需要调用即可。 二.字符串函数 MySQL中内置了很多字符串函数: 三.根据需求完成以下SQL编写 由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全…...
新浪API系列:支付API打造无缝支付体验,畅享便利生活(3)
在当今数字化时代,支付功能已经成为各类应用和平台的必备要素之一。作为开发者,要构建出安全、便捷的支付解决方案,新浪支付API是你不可或缺的利器。新浪支付API提供了全面而强大的接口和功能,帮助开发者轻松实现在线支付的集成和…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

