appium从安装到运行,控制真机+模拟器,安卓自动化

2023-11-02

1、jdk-8u152-windows-x64.exe, 下载地址:
JAVA环境变量: https://www.oracle.com/cn/java/technologies/oracle-java-archive-downloads.html

系统变量 添加 JAVA_HOME 值为jdk安装路径 如:D:\java\jdk1.8.0_171
系统变量 添加 CLASSPATH 值为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
系统变量 修改PATH的值, 在后面添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

java -version 出现如下 表示安装配置成功

2、python, 下载地址:https://www.python.org/downloads/windows/
3、pycharm,下载地址:https://www.jetbrains.com/pycharm/

4、python支持appium 的库,Appium依赖于Selemium。appium 库地址:http://appium.io/downloads.html
选择Python版本的Lib: Appium-Python-Client-0.22.tar.gz
py -3 -m pip install Appium_Python_Client -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
py -3 -m pip install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

5、Node安装,运行node-v14.16.1-x64.msi,安装到D盘。。地址:https://nodejs.org/en/

6、android SDK,解压到D盘:android-sdk_r24.4.1-windows.zip。。。地址https://www.androiddevtools.cn/
http://tools.android-studio.org/index.php/sdk/ 。。。双击“SDK Manager.exe”
在这里插入图片描述
需要什么版本的安卓就勾选那个版本,默认的那个版本要取消选择,一般会默认安卓10
在这里插入图片描述
在这里插入图片描述
【 Android SDK的国内镜像服务器-手动设置
1、中科院开源协会镜像站地址:
IPV4/IPV6 : http://mirrors.opencas.ac.cn 端口:80
2、北京化工大学镜像服务器地址:
IPv4: http://ubuntu.buct.edu.cn/ 端口:80
IPv4: http://ubuntu.buct.cn/ 端口:80
IPv6: http://ubuntu.buct6.edu.cn/ 端口:80
3、大连东软信息学院镜像服务器地址:
http://mirrors.neusoft.edu.cn 端口:80
注:镜像粘贴的时候不要带http:// 】在这里插入图片描述
6-1、Android Sdk环境变量配置
1、新建系统变量名为ANDROID_HOME,值SDK安装路径,E:\android-sdk-windows
2、然后就是在系统的Path变量后,追加
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
3、Adb version 检验一下Android SDK是否安装成功。。 android -h
adb devices -l 查看连接的设备
adb devices 获取到连接在电脑上手机的UDID
【模拟器连接】
adb connect 127.0.0.1:21503
先将模拟器文件夹下的adb.exe改名为me_adb.exe,
将本机的SDK路径下的adb.exe,复制到模拟器中的adb.exe目录下。(也可以替换)

7、appium,Appium-windows-1.20.2.exe。。下载地址:http://appium.io/
在这里插入图片描述
在这里插入图片描述
右上角的三个按钮分别是“start inspector session(启动检查器会话)”“Get Raw log(查看日志)”“Stop Server(停止服务)”,下面一块是看日志的

元素获取,-启动检查器会话file-new session windows在这里插入图片描述
运行 - 验证:
1、运行appium
2、查看手机内app的appPackage、appActivity
adb shell dumpsys activity recents | find “intent={”
# cmp=tv.danmaku.bili/.ui.splash.SplashActivity
# appPackage = tv.danmaku.bili # appActivity = .ui.splash.SplashActivity

3、代码
from time import sleep
from appium import webdriver
# 初始化参数
desired_caps = {
‘platformName’: ‘Android’, # 被测手机是安卓
‘platformVersion’: ‘9.0’, # 手机安卓版本
‘deviceName’: ‘Redmi7A’, # 设备名,安卓手机可以随意填写
‘appPackage’: ‘tv.danmaku.bili’, # 启动APP Package名称
‘appActivity’: ‘.ui.splash.SplashActivity’, # 启动Activity名称
‘unicodeKeyboard’: True, # 使用自带输入法,输入中文时填True
‘resetKeyboard’: True, # 执行完程序恢复原来输入法
‘noReset’: True,
‘newCommandTimeout’: 6000,
‘automationName’: ‘UiAutomator2’
}

# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote(‘http://localhost:4723/wd/hub’, desired_caps)
# 设置等待时间,如果不给时间的话可能会找不到元素
driver.implicitly_wait(8)
**

# 点击搜索框
driver.find_element_by_id(“expand_search”).click()
# 输入“逮虾户”
driver.find_element_by_id(“search_src_text”).send_keys(“逮虾户”)
# 键盘回车
driver.keyevent(66)
input(’**********’)
# 退出程序
driver.quit()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

appium从安装到运行,控制真机+模拟器,安卓自动化 的相关文章

  • 安装后找不到pip命令

    我被一个问题困住了 我有一个 Python 脚本 我想在我的 OSX 上运行 但似乎我在很多问题上都遇到了问题 要运行该脚本 我应该安装 Python 和 Moviepy 为了安装 Moviepy 我使用了这个命令 sudo pip ins
  • 什么时候在Python中使用弱引用?

    谁能解释一下弱引用的用法吗 The 文档 http docs python org library weakref html没有具体解释 只是说GC可以随时销毁通过弱引用链接到的对象 那么拥有一个随时可能消失的物体还有什么意义呢 如果我需要
  • 创建一个支持 json 序列化的类以与 Celery 一起使用

    我正在使用 Celery 来运行一些后台任务 其中一项任务返回我创建的 python 类 考虑到有关使用 pickle 的警告 我想使用 json 来序列化和反序列化此类 有没有一种简单的内置方法可以实现这一目标 该类非常简单 它包含 3
  • 从networkx中的文件中读取具有pos属性的节点

    我是 Networkx 的新手 我有一个包含以下格式的节点位置的文件 0 23 23 12 23 where 0是一个节点 23 23 and 12 23分别是X和Y坐标 有谁知道如何读取节点pos属性 使用类似的函数read edgeli
  • 使用 selenium 和 python 在网页网格中抓取 javascript 数据

    我的问题是我需要包含网站子域的网格中的所有数据https applipedia paloaltonetworks com https applipedia paloaltonetworks com 包含名称 类别 子类别 风险 技术的数据
  • 如何将 typeshed 与 mypy 一起使用?

    我克隆了typeshed https github com python typeshed但我不知道如何告诉 mypy 使用它包含的类型提示 我在 mypy help 中没有看到任何选项 mypy 存储库确实包含对 typeshed 存储库
  • 我如何知道Python的unicode函数识别的所有支持的编码

    Python 有一个unicode将字节流转换为 unicode 字符串的内置函数 我只是希望我能查询所有可用的encoding在我的系统上 但如何 这个问题的原因是 有人使用 MAC OS X 向我发送了一封内容编码为 iso 2022
  • Django CollectStatic 启动大文件上传时管道损坏

    我正在尝试使用collectstatic将静态文件上传到我的S3存储桶 但我收到一个700k javascript文件的管道损坏错误 这就是错误 Copying Users wedonia work asociados server aso
  • 为什么 scikit-learn SVM.SVC() 非常慢?

    我尝试使用SVM分类器来训练大约10万个样本的数据 但我发现它非常慢 甚至两个小时后也没有任何反应 当数据集有大约 1k 个样本时 我可以立即得到结果 我还尝试了 SGDClassifier 和朴素贝叶斯 速度相当快 几分钟内就得到了结果
  • Python Jinja2 调用宏会导致(不需要的)换行符

    我的 JINJA2 模板如下所示 macro print if john name if name John Hi John endif endmacro Hello World print if john Foo print if joh
  • 如何向 Jupyter (ipython) 笔记本自动添加扩展?

    我已经安装了扩展 calico document tools 我可以使用以下命令从 Jupyter 笔记本中加载它 javascript IPython load extensions calico document tools 如何为每个
  • dask分布式内存错误

    在分布式作业上运行 Dask 时 我在调度程序上遇到以下错误 distributed core ERROR Traceback most recent call last File usr local lib python3 4 dist
  • python请求ssl握手失败

    每次我尝试这样做 requests get https url 我收到这条消息 import requests gt gt gt requests get https reviews gethuman com companies Trace
  • 如何忽略 Sentry 捕获中的某些 Python 错误

    我已将 Sentry 配置为捕获 Django Celery 应用程序中的所有错误 它工作正常 但我发现一个令人讨厌的用例是当我必须重新启动我的 Celery 工作人员 PostgreSQL 数据库或消息服务器时 这会导致数千种各种 无法访
  • pip 升级到 pip 10.x.x 后解析需求文件的正确方法?

    所以今天我确实发现随着发布pip 10 x x the req软件包更改了其目录 现在可以在下面找到pip internal req 由于通常的做法是使用parse requirements功能在你的setup py从需求文件中安装所有依赖
  • matplotlib 后端 - 我关心吗?

    gt gt gt import matplotlib gt gt gt print matplotlib rcsetup all backends u GTK u GTKAgg u GTKCairo u MacOSX u Qt4Agg u
  • 如何使用 opencv python 根据检测到的物体的位置生成其热图

    我需要根据对象的位置生成其热图 示例 视频帧中检测到的绿色球 如果它长时间停留在某个位置 那么该位置应该是红色的 并且球在短时间内经过的帧中的位置必须是蓝色的 这样我就需要生成热图 提前致谢 那么你在这里可以做的是 1 首先定义一个热图作为
  • tkinter 库 treectrl 转换为 exe 安装程序时出现 cx_freeze 错误

    我使用的是 python 版本 3 7 我使用了这个名为 treectrl 的外部库 当我运行 py 文件时它工作得很好 但是当我使用 cx freeze 转换为 exe 文件时 它给了我错误 NomodulleFound 名为 tkint
  • 导入错误:无法导入名称

    我有一个名为 google translate python 的库 https github com terryyin google translate python https github com terryyin google tra
  • 定义Python类时,如何在其中设置随机变量?

    假设我有一个名为Person 其中只有该人的姓名和性别 性别应从男性和女性中随机选择 为此 我导入random randint 功能 根据随机int确定随机性别 import random class Person alias random

随机推荐

  • Java 连接池 用尽_连接池已经耗尽的表现是什么?解决方法是什么?

    作为程序员的话难免经常跟数据库打交道 了解连接池倒是也不奇怪 进而知道连接池也正常 那么你是否清楚连接池已经消耗殆尽的表现是什么吗 一般怎么解决呢 有时候在通过其中一台数据库客户端连接访问服务器上的DB 所有对象 表 视图 存储过程 都打不
  • maven异常:Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.2

    好像用依赖的方式将上面的jar包导入prom文件 idea会报错 下载该jar包会失败 两个解决方案 方案一 1 下载sqljdbc42 jar包 官网地址 https www microsoft com en us download de
  • Obliv-C使用详解(混淆电路)

    前期说明 Obliv C是一款GCC包装器 其作者在C语言的基础上对其进行了一定的类C处理 添加了一些规则限制 用于模拟实现混淆电路 Obliv C不需要手动混淆 只需要调用其中的函数便可实现混淆电路 其不涉及真实硬件电路仿真 即无法导出函
  • 安卓期末考试

    考点 第二章 第三章 核心点 第二章最后讲了一个线程 必须要会 第四章了解 第五第六第七了解 第九章三个存储 简单存储会写 文件存储 数据库存储 第十章不会考很多 核心也是线程 安卓 移动应用开发 考试 选择题 Logcat e error
  • ElasticSearch第二十讲 Elasticsearch的优势和应用场景

    Elasticsearch简介 Elasticsearch 是一个开源的分布式搜索和分析引擎 构建在 Apache Lucene 基础之上 它提供了一个快速 可扩展和具有强大查询功能的分布式搜索解决方案 Elasticsearch 被广泛应
  • javascript中with的用法

    关键字with 任何对象都可以使用with 通过使用with可以减少写一点代码 使用方法如下 1 语法 with object jsvascript代码 参数 一个对象 必须是一个对象 假设我们传入了一个obj对象 用法 花括号中的 jsv
  • 软件测试学习记录

    1 软件测试的定义 使用技术的手段验证软件是否满足需求 2 软件测试分类 按阶段分类 单元测试 针对源代码进行测试 集成测试 针对接口进行测试 系统测试 针对功能和非功能进行测试 验收测试 内测 公测 按代码可见度划分 黑盒测试 不关注源代
  • 北斗+车载录像机:“两客一危”的黑匣子

    两客一危 是指从事旅游的包车 三类以上班线客车和运输危险化学品 烟花爆竹 民用爆炸物品的道路专用车辆 由于该类车辆的危险系数较高 事故概率也比普通车辆大 各地方地区已就此类车辆陆续出台相应政策 例如早在2011年湖南省交通运输厅明确指出 两
  • 复制代码如何处理前面的行号

    网上类似的例子很多 1 一个很懒的方法 2 文本编辑器中正则表达式替换 一 一种情况是行号后带 输入 0 9 或者输入 0 9 0 9 0 9 二 第二种情况是行号数字后带空格 用ultraEdit的替换功能 正则表达式 1 9 0 9 注
  • Debian10搭建bind9主服务器搭建

    文章目录 1 环境 2 任务描述 3 设置IP地址以及dns 4 安装bind9服务 5 修改配置文件 6 测试 7 易错总结 1 环境 IPaddress 192 168 1 1 netmask 255 255 255 0 getaway
  • 1.OpenGLES——FBO方式的离屏渲染

    参考 https blog csdn net u011371324 article details 78011211 书写本文的初衷是为了自我学习 出现背景 明确两个概念 窗口系统默认帧缓冲 应用程序帧缓冲 FBO frame buffer
  • leetcode 26. 删除有序数组中的重复项

    给你一个 升序排列 的数组 nums 请你 原地 删除重复出现的元素 使每个元素 只出现一次 返回删除后数组的新长度 元素的 相对顺序 应该保持 一致 然后返回 nums 中唯一元素的个数 考虑 nums 的唯一元素的数量为 k 你需要做以
  • 【错误】SpringMVC 通配符的匹配很全面, 但无法找到元素 ‘mvc:default-servlet-handler‘ 的声明。

    问题描述 通配符的匹配很全面 但无法找到元素 mvc default servlet handler 的声明 原因 虽然在xml文件上方声明了mvc 但没有配置此声明对应的文件信息 正确配置如下 mvc声明用http www springf
  • java投影查询_详解Spring Data JPA系列之投影(Projection)的用法

    本文介绍了Spring Data JPA系列之投影 Projection 的用法 分享给大家 在JPA的查询中 有一个不方便的地方 Query注解 如果查询直接是 Select C from Customer c 这时候 查询的返回对象就是
  • 论文笔记 & R 笔记:imputeTS: Time Series Missing ValueImputation in R

    0 摘要 imputeTS 包专门研究单变量时间序列插补 它提供了多种最先进的插补算法实现以及用于时间序列缺失数据统计的绘图函数 虽然插补通常是一个众所周知的问题 并且被 R 包广泛覆盖 但找到能够填补单变量时间序列中缺失值的包更加复杂 其
  • js的函数的逻辑中断

    逻辑中断也称短路运算 指的是在包含多个表达式的逻辑判断从左往右执行时 当左边的表达式可以确定结果时 就不再对右边的表达式进行逻辑判断 逻辑中断 逻辑中断 1 表达式1 表达式2 表达式1为真 返回表达式1 表达式1为假 返回表达式2 2 表
  • 华为hg532e设置虚拟服务器,华为hg532e设置虚拟服务器

    华为hg532e设置虚拟服务器 内容精选 换一换 本节操作介绍华为云上云服务器的跨账号跨区域迁移 建议采用镜像迁移方式 服务器迁移的常见场景与常用的迁移方式请参考迁移的背景知识 跨账号跨区域迁移的方法请参考方案介绍常见的服务器迁移场景包括物
  • OPEN3D(python)学习笔记-1.4 点云裁剪

    官方文档链接 http www open3d org docs release 示例代码 用read selection polygon volume读取指定的多边形区域的json文件 import open3d as o3d import
  • 阿里云服务器使用过程小记

    实验室服务器升级 之前一直免费托管在学校实验室 最近开始往阿里云上面迁移 先从阿里云服务器ECS入手 以下是在实验过程中的一些记录 记录下来便于后期管理 一 前端设备数据接入 一 最普遍的使用是采用DTU透传 DTU配置的目标IP即为ECS
  • appium从安装到运行,控制真机+模拟器,安卓自动化

    1 jdk 8u152 windows x64 exe 下载地址 JAVA环境变量 https www oracle com cn java technologies oracle java archive downloads html 系