mac下Appuim环境安装-持续更新中

参考资料

Mac安装Appium_mac电脑安装appium-CSDN博客

安卓测试工具:Appium 环境安装(mac版本)_安卓自动化测试mac环境搭建-CSDN博客

1. 基本环境依赖

1 node.js

2 JDK(Java JDK)

3 Android SDK

4 Appium(主要是安装appium desktop版本)

5 Appium主要依赖

6 Appium-doctor(验证环境是否搭建完成)

2. 安装cnpm

由于npm源在国外,我们使用npm安装库时会比较慢,可以使用taobao的镜像源

npm install -g cnpm --registry=https://registry.npm.taobao.org

检查安装是否成功

cnpm -v

如遇安装cnpm报错

npm ERR! code EACCES
npm ERR! syscall rename
npm ERR! path /usr/local/lib/node_modules/appium
npm ERR! dest /usr/local/lib/node_modules/.appium-cfBVovI6
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/appium' -> '/usr/local/lib/node_modules/.appium-cfBVovI6'
npm ERR!  [Error: EACCES: permission denied, rename '/usr/local/lib/node_modules/appium' -> '/usr/local/lib/node_modules/.appium-cfBVovI6'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'rename',
npm ERR!   path: '/usr/local/lib/node_modules/appium',
npm ERR!   dest: '/usr/local/lib/node_modules/.appium-cfBVovI6'
npm ERR! }

解决办法:彻底解决全局安装权限问题_npm err! code eacces npm err! syscall mkdir npm er

cd ~
mkdir .npm-global
npm config set prefix '~/.npm-global'
export PATH="~/.npm-global/bin:$PATH"

再次执行
npm install -g cnpm --registry=https://registry.npm.taobao.org

3. 安装appium无界面版:npm i -g appium@next

4. 安装appium 客户端 (老版)

方法一:官网下载进行安装(不推荐,不翻墙的话,有时候很难下载到),地址:http://appium.io/

方法二:链接: https://pan.baidu.com/s/1sYacv6dwYgYeWN3r_pbzgA 提取码: v464

安装完成后点击Start Server按钮

安装appnium-desktop server端

Releases · appium/appium-desktop · GitHub

5. 安装appium-doctor来确认安装环境是否完成

cnpm install -g appium-doctor

6. 启动appium 在终端执行 appium

如遇Could not start REST http interface listener. The requested port may already be in use. Please make sure there is no other instance of this server running already.

https://blog.51cto.com/u_15127509/4222891

查看端口占用情况:lsof -i:4723

杀掉appium进程:ps -ef|grep 'appium'|awk '{print $2}'|xargs kill -9

7. 安装appium驱动uiautomator2

(base) qa@yueyutu:~$ appium driver list

✔ Listing available drivers
- uiautomator2 [not installed]
- xcuitest [not installed]
- mac2 [not installed]
- espresso [not installed]
- safari [not installed]
- gecko [not installed]
- chromium [not installed]

(base) qa@yueyutu:~$appium driver install uiautomator2

8. 由于还没安装xcode,所以会有Xcode相关的报错,暂时忽略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/761806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何优化前端项目的 SEO

在当今数字化时代,网站对于企业的重要性不言而喻。然而,一个优秀的网站如果在搜索引擎中排名靠后,将无法吸引到足够的流量和用户。因此,优化前端项目的SEO已经成为了网站拓展业务、提升品牌知名度的必经之路。 响应式设计与移动优…

ByteMD - 掘金社区 MarkDown 编辑器的免费开源的版本,可以在 Vue / React / Svelte 中使用

各位元宵节快乐,今天推荐一款字节跳动旗下掘金社区官方出品的 Markdown 编辑器 JS 开发库。 ByteMD 是一个用于 web 开发的 Markdown 编辑器 JavaScript 库,是字节跳动(也就是掘金社区)出品的 Markdown 格式的富文本编辑器&#…

利用Python进行数据清洗与预处理:Pandas的高级用法【第147篇—Pandas的高级用法】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 利用Python进行数据清洗与预处理:Pandas的高级用法 在数据科学和机器学习领域&…

AI绘画自动生成器:让艺术创作触手可及

随着人工智能技术的飞速发展,越来越多的应用领域逐渐与AI技术融合。在艺术领域,AI绘画自动生成器成为了一款备受关注的产品。它利用深度学习算法,让用户通过输入关键词或描述性文本,就能在几秒钟内生成一幅独特的艺术作品。在这篇…

选择器加练习

一、常用的选择器 1.元素选择器 语法 : 标签名{} 作用 : 选中对应标签中的内容 例:p{} , div{} , span{} , ol{} , ul{} ...... 2.类选择器(class选择器) 语法 : .class属性值{} 作用 : 选中对应class属性值的元素 注意:class里面的属性值不能以数字开头,如果以符号开头,…

Java中最简单的添加日志链路的方式之一

Java项目中添加日志链路功能的设计与实现 文章目录 Java项目中添加日志链路功能的设计与实现前言一、日志链路的概念与作用二、添加日志链路的设计思路三、如何支持多线程下的日志打印也附加上日志链路id1. 示例1:实现Runnable接口,无返回值2. 示例2&…

适配器模式与桥接模式-灵活应对变化的两种设计策略大比拼

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自:设计模式深度解析:适配器模式与桥接模式-灵活应对变…

Spark Rebalance hint的倾斜的处理(OptimizeSkewInRebalancePartitions)

背景 本文基于Spark 3.5.0 目前公司在做小文件合并的时候用到了 Spark Rebalance 这个算子,这个算子的主要作用是在AQE阶段的最后写文件的阶段进行小文件的合并,使得最后落盘的文件不会太大也不会太小,从而达到小文件合并的作用,…

sentinel熔断规则详解

1、慢调用降级熔断 1.1、参数详解 最大RT:调用接口的最大时间。 比例阈值:超过了最大RT调用时间的请求的比例。 熔断时长:触发熔断后,熔断的时间 最小请求数据:每秒最少的请求数量,只有大于等于这个数…

SQLiteC/C++接口详细介绍sqlite3_stmt类(九)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(六) 下一篇: 无 33、sqlite3_column_table_name 函数 sqlite3_column_table_name 用于返回结果集中指定列所属的表的名称。如果查询中列使…

前端案例:产品模块

文章目录 产品模块效果结构布局分析父级盒子布局图片和段落评价和详情 产品模块效果 结构布局分析 1、大的父级盒子包含全部的内容 2、内容装入 图片(img标签);分别三个子盒子装入两段评价以及商品信息。 父级盒子布局 div {width: 300px…

网络通信——IP地址、端口号、协议(TCP、UDP)

通信架构 网络通信三要素 IP地址 IPv4地址 IPv6地址 IP域名 IP常识 端口号 概念 协议 开放式网络互联标准:OSI、TCP/IP 传输层的2个通信协议——UDP、TCP TCP协议:三次握手建立建立可靠连接 进行三次握手的原因:为了确保客户端和服务端…

实时数仓之实时数仓架构(Doris)

目前比较流行的实时数仓架构有两类,其中一类是以Flink+Doris为核心的实时数仓架构方案;另一类是以湖仓一体架构为核心的实时数仓架构方案。本文针对Flink+Doris架构进行介绍,这套架构的特点是组件涉及相对较少,架构简单,实时性更高,且易于Lambda架构实现,Doris本身可以支…

R语言Meta分析核心技术:回归诊断与模型验证

R语言作为一种强大的统计分析和绘图语言,在科研领域发挥着日益重要的作用。其中,Meta分析作为一种整合多个独立研究结果的统计方法,在R语言中得到了广泛的应用。通过R语言进行Meta分析,研究者能够更为准确、全面地评估某一研究问题…

安卓studio连接手机之后,一两秒之后就自动断开了。问题解决。

太坑了,安卓studio链接手机之后。几秒之后就断开了。我以为是adb的问题,就重新安装了一下adb。并且在环境变量中配置了Path的路径。然而并没有什么用啊。 后来查看是wps的服务和ADB有冲突。直接把WPS卸载掉之后就没有出现链接手机闪现的的问题。

基于python+vue研究生志愿填报辅助系统flask-django-php-nodejs

二十一世纪我们的社会进入了信息时代,信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破了传统管理方式的局限性。于是本文针对这一需求设…

阿里云国际该如何设置DDoS高防防护策略?

DDoS高防提供针对网络四层DDoS攻击的防护策略设置功能,例如虚假源和空连接检测、源限速、目的限速,适用于优化调整非网站业务的DDoS防护策略。在DDoS高防实例下添加端口转发规则,接入非网站业务后,您可以单独设置某个端口的DDoS防…

Hive SQL必刷练习题:留存率问题(*****)

留存率: 首次登录算作当天新增,第二天也登录了算作一日留存。可以理解为,在10月1号登陆了。在10月2号也登陆了,那这个人就可以算是在1号留存 今日留存率 (今日登录且明天也登录的用户数) / 今日登录的总…

蓝桥杯STM32 G431 hal库开发速成——输入捕获

蓝桥杯的输入捕获较为简单,基本不涉及溢出的问题。所以这里就不介绍溢出了。文末有源码。 一、Cubemx配置 二、代码编写 1.在捕获回调函数中 void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {if(htim->InstanceTIM3){switch(count){case 1:{jishu1…

如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?

如何让标题1和标题2不一样&#xff1f; 修改根目录下的App.vue&#xff08;核心代码如下&#xff09; <script>export default {onLaunch() {// 监听各种跳转----------------------------------------[navigateTo, redirectTo, reLaunch, switchTab, navigateBack, ].…