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已经成为了网站拓展业务、提升品牌知名度的必经之路。 响应式设计与移动优…

C# 方法的传参

引用传参 using System;public class Program {public static void Main(){Tools t new Tools();t.bf();double a 10;double b 20;t.change(ref a, ref b);Console.WriteLine(b);} }class Tools {public void af() {Console.Write("a\n");}internal void bf() {C…

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

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

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

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

Flutter编译卡在Running Gradle task ‘assembleDebug

1、翻墙 2、修改国内镜像源(以下以Flutter 3.19.3版本为例) 找到Flutter SDK目录下的Flutter配置文件resolve_dependencies.gradle 路径:flutter/packages/flutter_tools/gradle/resolve_dependencies.gradle 1)、第一处修改: g…

大模型: 多角色对话系统解释

文章目录 一、什么是多角色对话二、messages中的角色划分1、user(用户)2、assistant(助手)3、system(系统) 一、什么是多角色对话 二、messages中的角色划分 1、user(用户) 表示用…

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

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

如何下载和安装 macOS

在兼容的 Mac 电脑上下载并安装最新或以前版本的 Mac 操作系统。 为了保持电脑的安全性、稳定性和兼容性,Apple 建议使用与你的 Mac 兼容的最新版 macOS。macOS 更新和升级还包含最新的功能和内建 App(如 Safari 浏览器)。 使用“软件更新”…

通过value对key进行排序

347.前 K 个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2] class Solution(object):def topKFrequent(self, nums, k):""&quo…

选择器加练习

一、常用的选择器 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 用于返回结果集中指定列所属的表的名称。如果查询中列使…

Android中的前台Service

文章目录 概念介绍使用场景启动方式结束方式概念介绍 前台服务可以说是除了绑定式Service和非绑定式Service之外,又一种Service类型。 顾名思义,它是运行在前台可以和用户打交道的Service。也因此它的优先级相比另外两个运行在后台的Service要高,几乎不会被系统回收。 使…

前端案例:产品模块

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

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

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

安卓面试题多线程 146-152

146. 简述AQS 支持两种同步方式 ?1、独占式 2、共享式 这样方便使用者实现不同类型的同步组件,独占式如 ReentrantLock,共享式如Semaphore,CountDownLatch,组合式的如 ReentrantReadWriteLock。总之,AQS 为使用提供了底层支撑,如何组装实现,使用者可以自由发挥。147. 简…

cad vba 打开excel并弹窗打开指定文件

CAD vba 代码实现打开excel,并通过对话框选择xls文件,并打开此文件进行下一步操作。代码如下: excel.activeworkbook.sheets(1) excel对象下activeworkbook,再往下是sheets对象,(1)为第一个表, thisworkbook是vba代码所在的工作簿。 Opti…