Appium 环境搭建

article/2025/10/20 0:52:28

一、下载并安装appium客户端(勿装1.15.1版本,1.15.1版本很多坑)
进入appium官网http://appium.io/下载版本,将下载好的版本按照步骤进行安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Appium-Python-Client第三方包
pip3 install Appium-Python-Client -i https://pypi.tuna.tsinghua.edu.cn/simple
在这里插入图片描述

二、配置jdk及Android sdk环境
2.1、jdk8下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
按照步骤进行安装jdk
2.2、Android SDK下载地址:http://dl.google.com/android/android-sdk_r23.0.2-windows.zip
2.2.1、下载SDK后解压文件,运行SDK Manager安装platform-tools
2.2.2、配置Android环境变量
1)、新增系统变量,变量名:ANDROID_HOME,变量值:Android SDK存放根目录
2)、在系统变量path中新增变量:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、appium启动Android app
android (vivo x21) desired capabilities:
{ “appPackage”: “com.lumiunited.aqarahome”, “appActivity”: “com.lumiunited.aqara.main.SplashActivity”, “noReset”: “true”, “platformVersion”: “9”, “deviceName”: “android”, “platformName”: “Android” }
直接套用会使用就可以
import time
from appium import webdriver

desired_caps = {}
desired_caps[‘platformName’] = ‘Android’ # 打开什么平台的app,固定的 > 启动安卓平台
desired_caps[‘platformVersion’] = ‘6.0.1’ # 安卓系统的版本号:adb shell getprop ro.build.version.release
desired_caps[‘deviceName’] = ‘P10’ # 手机/模拟器的型号:adb shell getprop ro.product.model
desired_caps[‘appPackage’] = ‘io.appium.android.apis’ # app的名字:
# 安卓8.1之前:adb shell dumpsys activity | findstr “mFocusedActivity”
# 安卓8.1之后:adb shell dumpsys activity | findstr “mResume”
desired_caps[‘appActivity’] = ‘.ApiDemos’ # 同上↑
desired_caps[‘unicodeKeyboard’] = True # 为了支持中文
desired_caps[‘resetKeyboard’] = True # 设置成appium自带的键盘
desired_caps[‘noReset’] = True # 使用app的缓存

去打开app,并且返回当前app的操作对象

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、appium 启动iOS app
4.1、iOS真机安装webdriveragent(appium自带WDA,WDA路径见配置环境中问题记录2)
1)、终端进入目录:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/webdriveragent
2)、执行脚本
命令行终端到wda根目录下, 运行./Scripts/bootstrap.sh
3)、打开项目,配置开发者证书,WebDriverAgentRunner项目build setting修改bundle Id为唯一标识(如com.lumi.WebDriverAgentRunner),product-》test运行
4)、浏览器输入http://localhost:8100/status,可显示结果数据,例如下:
{ “value” : { “message” : “WebDriverAgent is ready to accept commands”, “state” : “success”, “os” : { “name” : “iOS”, “version” : “13.4.1”, “sdkVersion” : “13.4” }, “ios” : { “simulatorVersion” : “13.4.1”, “ip” : “10.0.100.19” }, “ready” : true, “build” : { “time” : “May 21 2020 18:36:31”, “productBundleIdentifier” : “com.facebook.WebDriverAgentRunner” } }, “sessionId” : “B9BE0798-C334-47BE-AFDF-F99D12CC036D” }
WebdriverAgent环境配置成功
5)、启动appium,配置desired capability为:
{ “bundleId”: “com.lumiunited.pre.homekit”, “automationName”: “XCUITest”, “platformVersion”: “13.4.1”, “deviceName”: “iphone”, “platformName”: “iOS”, “udid”: “2e6939b70da40972c17971831a7ed4e43087b8e9” }

五、配置环境中问题记录:
1、appium配置Android desired capabilities 启动时提示The ANDROID_HOME environment variable is not set to the Android SDK root directory path. ANDROID_HOME is required for compatibility with SDK 23+. Checking along PATH for adb(电脑已配置Android SDK环境)
解决方案:

appium-》Configurations配置Android sdk路径,重启appium可正常启动Aqara Home app

2、appium 1.15.1版本webdriver路径为:/Applications/Appium.app/Contents/Resources/app/node_modules/appium-webdriveragent
appium通用路径为:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/webdriveragent
3、执行脚本时提示 ./Scripts/bootstrap.sh提示ERROR in ./js/app.js Module parse failed:/app.js Unexpected token错误
解决方案:1、修改Inspector下webpack.config.js文件
2、去掉babel-loader配置后的,“exclude: /node_modules/”
3、删除Inspector下node_modules文件夹
4、重新执行 “sh ./Scripts/bootstrap.sh”
4、运行时提示’assign’ property of object type may become a dangling reference; consider using ‘unsafe_unretained’
解决方案:我们在报错出双击,进入到报错代码处,将assign改为strong后再次build


http://chatgpt.dhexx.cn/article/VVsqpISZ.shtml

相关文章

appium环境搭建全套

环境 1 Node.js 2 Appium 3 Appium-desktop 4 Appium-Python-Client 5 Python 6 JDK 7 Andriod SDK 8 Appium-doctor 一、安装Node.js 下载地址:https://nodejs.org/en/download/releases/ 注意:Appium版本是1.7.2,则选择的No…

Appium环境搭建

一、Appium框架原理 1.介绍 appium是一个移动端的自动化测试框架,可用于测试原生应用,移动网页应用和混合应用,支持iOS和Android。 2.原理 appium可以理解为一个c/s架构软件,在pc端安装的appium server端,通过appi…

Appium环境搭建教程

最近打算研究开发一个手机的自动化小工具,奈何在这方面自己是一个小白,于是开始针对手机进行研究。由于主要使用Appium这个工具,因此本文主要讲解Appium环境的搭建,并结合自己的实践讲一讲需要避过的坑。 一、 安装Node.js Node.…

MySQL函数语句

目录 一、MySQL数据库函数作用二、MySQL数据库函数分类1.1.1、数学函数常用的数学函数1、abs(x):返回x的绝对值2、rand() :返回0到1的随机数3、mod(x, y) :返回x除以y以后的余数4、power(x, y)“:返回x的y次…

MySQL函数(=)

1 将username字段的截取两个字符,其中将包含为1的字符替换为q SELECT REPLACE(SUBSTRING(username,1,2),1,q) FROM guanliyuan; 2 将日期时间转换为字符串 SELECT DATE_FORMAT(2009-10-11 22:12:12,%Y%m%d%H%i%s); 3 从日期中截取年份 SELECT SUBSTRING(DATE_FO…

MySQL函数介绍

MySQL数据库提供了很多函数包括: 数学函数;字符串函数;日期和时间函数;条件判断函数;系统信息函数;加密函数;格式化函数; 一、数学函数 数学函数主要用于处理数字,包括整…

mysql函数实例

红色为表名,蓝色为字段名,绿色为函数,可根据自己的情况修改 点击跳转mysql函数全集https://blog.csdn.net/qq_41738750/article/details/121003757https://blog.csdn.net/qq_41738750/article/details/121003757 教学视频http://121.4.59.101/2.mp4 一…

MySQL函数学习

目录 一、日期函数: 二、字符串函数学习 三、窗口函数 1.序号函数 ​2.开窗聚合函数 ​2.分布函数 3.前后函数 4.头尾函数 5.其他函数 一、日期函数: 1.日期、时间获取: select curdate();#当前日期; select current_d…

MySQL函数运用

目录 一,函数的定义 二,常用函数 三,字符串函数 四, 数学函数 五,判断函数 六、合并(union) 一,函数的定义 1.类似Java定义方法 2.可以带参数 3.必须有返回值(一行一列) ,重点:ja…

MYSQL 函数

1.IF(Condition,A,B)Condition 为true 返回A 否则返回B 2.IFNULL(fieldA,fieldB)当字段fieldA是NULL时取fieldB,不是NULL时取fieldA的值nullif(exp1,exp2)如果exp1与exp2相等,则返回null,否则返回exp1 3.GROUP_CONCAT()该函数是将多条结果集变…

MySQL函数的使用

ABS(X) :返回x的绝对值 MOD(N,M):表示%,返回N被M除的余数 floor(X) :返回不大于X的最大整数值,向下取整 round(X) :四舍五入取整 distinct:distinct用于返回唯一不同的值。目的是去重 ifNull(X,Y):查询时判断X是否为空,为空则使用默认值Y group_concat(X…

MySQL常用函数

MySQL常用函数 一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数的底)的x次方FLOOR(x) 返回小于x的最大整数…

JKD动态代理

一、说明 在Java的动态代理机制中,有两个重要的类和接口,一个是InvoInvocationHandler(接口)、Proxy(类),这一个类和接口是我们动态代理所必须用到的。 优点: 对于实现了接口的类&…

JDO

如何用JDO开发数据库应用 (本文的版权属作者本人,欢迎转载,但必须注明出处和原作者) 本文将介绍如何使用Sun公司的最新《Java Data Objects 》规范来进行基于数据库的简单应用程序的开发,从而使读者对JDO有一个直接的感…

亲测Linux服务器安装JKD操作流程

下载地址: 链接: https://pan.baidu.com/s/14aOlotFFQy6KQ05T1t2iyw 提取码: 67t4 青华大学:https://mirrors.tuna.tsinghua.edu.cn/Adoptium/8/jdk/x64/linux/ 1.添加Linux命令(默认没有上传命令) yum install lrzsz 2.查看JKD是…

J D B C

文章目录 前言一、jdbc是什么?二、使用步骤三、sql注入三、封装四、ORM(object rational mapping)五、日期类六,事务七,三层架构八,连接池 前言 一、jdbc是什么? JDBC(Java DataBase Connectivity,java数…

jkd环境配置

这里写目录标题 1.下载jdk2. 安装jdk3.配置环境4.验证 1.下载jdk https://www.oracle.com/java/technologies/javase-jdk16-downloads.html(下载链接) 2. 安装jdk 只需要自定义安装路径,其余不动 3.配置环境 我的电脑(右键&a…

JKD+Tomcat+Eclipse基础配置

目录 一、JDK环境变量配置:java(jdk需安装,根据向导安装,无需修改) 二、检查是否配置成功: 三、Tomcat环境变量配置:java(jdk需安装)和Tomcat(需解压) 四、…

Linux之jkd、tomcat、mysql安装

目录 一、安装JDK1、将jdk解压到/opt下2、配置环境变量1)vi /etc/profile2)在最后面配置JDK环境变量3)设置环境变量生效4)检查JDK环境变量 二、安装Tomcat1.解压Tomcat2.配置环境变量1)vi /etc/profile2)在…

在java中jkd中文意思_Java JDK是什么意思?有什么作用?

下面我们介绍,Windows7 和 Windows10下载安装JDK与JDK环境配置的方法。 (1)下载JDK(获取【JDK8、11、15全系列版本】【Java高级程序员学习路线图】【0基础Java视频资料】加播妞 :2217622915) https://www.oracle.com/technetwork/java/javase/overview/i…