windows系统中实现对于appium的依赖搭建
-
Node.js:Appium是基于Node.js的,因此需要安装Node.js。可以从Node.js官网下载并安装。
-
Java Development Kit (JDK):用于Android应用的自动化测试,需要安装JDK。可以从Oracle官网下载并安装。
-
Android SDK:进行Android应用的自动化测试时,需要配置Android SDK。可以通过安装Android Studio来获取SDK,或者单独下载SDK并配置环境变量。
-
Appium Server:可以通过npm命令
npm install -g appium来安装Appium Server,或者下载Appium Desktop应用。 -
Appium Inspector:这是一个可选工具,用于检查应用元素,可以从Appium Desktop应用中访问。
-
Appium-Python-Client(如果使用Python编写测试脚本):可以通过pip命令
pip install Appium-Python-Client来安装。 -
.NET Framework(对于某些Windows系统):在安装Node.js时可能会需要。
-
环境变量配置:需要配置环境变量以确保命令行工具可以正确运行,例如配置
ANDROID_HOME指向Android SDK的安装路径,以及将SDK的platform-tools和build-tools目录添加到系统的Path变量中。 -
模拟器或真机:进行测试时需要有Android模拟器或真机设备。
-
appium-doctor(可选):这是一个工具,用于检查Appium运行所需的依赖和环境变量是否正确配置。可以通过npm命令
npm install -g appium-doctor来安装。
方案一
# 安装 Node.js
if (-not (Get-Command node -ErrorAction SilentlyContinue)) {Write-Output "开始安装 Node.js,从 Node.js 官网下载并安装"
}# 安装 Java Development Kit (JDK)
if (-not (Test-Path "C:\Program Files\Java\jdk1.8.0_202")) {Write-Output "开始安装 JDK,从 Oracle 官网下载并安装"
}# 安装 Android SDK
if (-not (Test-Path "C:\Android\Sdk")) {Write-Output "开始安装 Android SDK,通过安装 Android Studio 来获取或单独下载并配置环境变量"
}# 安装 Appium Server
if (-not (Get-Command appium -ErrorAction SilentlyContinue)) {Write-Output "开始安装 Appium Server,使用 npm 命令 npm install -g appium"
}# 安装 Appium Inspector(可选)
if (-not (Get-Command appium-inspector -ErrorAction SilentlyContinue)) {Write-Output "开始安装 Appium Inspector,从 Appium Desktop 应用中访问"
}# 安装 Appium-Python-Client(如果使用 Python 编写测试脚本)
if (-not (Get-Command pip -ErrorAction SilentlyContinue)) {Write-Output "开始安装 Appium-Python-Client,使用 pip 命令 pip install Appium-Python-Client"
}#.NET Framework(对于某些 Windows 系统)
Write-Output ".NET Framework(可能需要在安装 Node.js 时安装)"# 环境变量配置
Write-Output "需要配置环境变量,如配置 ANDROID_HOME 指向 Android SDK 的安装路径,将 SDK 的 platform-tools 和 build-tools 目录添加到系统的 Path 变量中"# 模拟器或真机
Write-Output "进行测试时需要有 Android 模拟器或真机设备"# appium-doctor(可选)
if (-not (Get-Command appium-doctor -ErrorAction SilentlyContinue)) {Write-Output "开始安装 appium-doctor,使用 npm 命令 npm install -g appium-doctor"
}Write-Output "所有依赖环境安装完成"
方案二
# PowerShell脚本:安装Appium及其依赖环境# 设置执行策略
Set-ExecutionPolicy Bypass -Scope Process -Force# 定义变量
$nodeJsUrl = "https://nodejs.org/dist/v14.17.0/node-v14.17.0-x64.msi"
$nodeJsInstaller = "$env:TEMP\node-v14.17.0-x64.msi"
$jdkUrl = "https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.msi"
$jdkInstaller = "$env:TEMP\jdk-17_windows-x64_bin.msi"
$androidSdkUrl = "https://dl.google.com/android/repository/commandlinetools-win-7583922_latest.zip"
$androidSdkZip = "$env:TEMP\commandlinetools-win-7583922_latest.zip"
$androidSdkDir = "$env:LOCALAPPDATA\Android\Sdk"# 安装Node.js
Write-Host "Downloading and installing Node.js..."
Invoke-WebRequest -Uri $nodeJsUrl -OutFile $nodeJsInstaller
Start-Process -FilePath msiexec.exe -Args "/i `"$nodeJsInstaller`" /quiet /norestart" -Wait
Remove-Item $nodeJsInstaller# 安装JDK
Write-Host "Downloading and installing JDK..."
Invoke-WebRequest -Uri $jdkUrl -OutFile $jdkInstaller
Start-Process -FilePath msiexec.exe -Args "/i `"$jdkInstaller`" /quiet /norestart" -Wait
Remove-Item $jdkInstaller# 安装Android SDK
Write-Host "Downloading and installing Android SDK..."
Invoke-WebRequest -Uri $androidSdkUrl -OutFile $androidSdkZip
Expand-Archive -Path $androidSdkZip -DestinationPath $androidSdkDir
Remove-Item $androidSdkZip# 配置环境变量
Write-Host "Configuring environment variables..."
$env:Path += ";$androidSdkDir\platform-tools"
$env:Path += ";$androidSdkDir\tools\bin"
$env:ANDROID_HOME = $androidSdkDir
[Environment]::SetEnvironmentVariable("Path", $env:Path, [EnvironmentVariableTarget]::Machine)
[Environment]::SetEnvironmentVariable("ANDROID_HOME", $androidSdkDir, [EnvironmentVariableTarget]::Machine)# 安装Appium Server
Write-Host "Installing Appium Server..."
npm install -g appium# 安装Appium-Python-Client(如果使用Python)
Write-Host "Installing Appium-Python-Client..."
pip install Appium-Python-Client# 安装appium-doctor
Write-Host "Installing appium-doctor..."
npm install -g appium-doctorWrite-Host "Installation completed. Please restart your computer."# 重启计算机(可选)
# Restart-Computer
相关文章:
windows系统中实现对于appium的依赖搭建
Node.js:Appium是基于Node.js的,因此需要安装Node.js。可以从Node.js官网下载并安装。 Java Development Kit (JDK):用于Android应用的自动化测试,需要安装JDK。可以从Oracle官网下载并安装。 Android SDK:进行Andro…...
使用MATLAB进行字符串处理
MATLAB是一个强大的数学和计算机科学的软件工具包。它拥有一个灵活的字符串处理工具,可以用于处理和转换不同格式的字符串,例如,数值、日期、时间等。本文将探讨如何使用MATLAB进行字符串处理,以及如何利用它来解决实际问题。 在…...
Sourcetree登录GitLab账号
1. 在GitLab上创建个人访问令牌 在gitlab中点击右上角的头像图标,选择设置进入 Access Tokens(访问令牌) 页面填写令牌名称和到期时间,指定Scopes(范围)。一般选择read_repository和api点击 Create person…...
Linux进阶:软件安装、网络操作、端口、进程等
软件安装 yum 和 apt 均需要root权限 CentOS系统使用: yum [install remove search] [-y] 软件名称 install 安装remove 卸载search 搜索-y,自动确认 Ubuntu系统使用 apt [install remove search] [-y] 软件名称 install 安装remove 卸载search 搜索-y&…...
光猫、路由器、交换机之连接使用(Connection and Usage of Optical Cats, Routers, and Switches)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…...
2025蓝桥杯(单片机)备赛--扩展外设之超声波测距原理与应用(十一)
1 超声波测距原理 接收器接到超声波的时间差。超声波发射器想某一方向发射波,再发射时刻开始计时 超声波在空气中传播,遇到障碍物则返回,超声波接收器收到反射波,立即停止计时。 SOR4原理: 通过IO口(TRIG…...
分布式数据库中间件可以用在哪些场景呢
在数字化转型的浪潮中,企业面临着海量数据的存储、管理和分析挑战。华为云分布式数据库中间件(DDM)作为一款高效的数据管理解决方案,致力于帮助企业在多个场景中实现数据的高效管理和应用,提升业务效率和用户体验。九河…...
MyBatis-Plus分页插件IPage用法
首先就是service接口需要继承IService<entity> 然后就是业务类实现类中需要继承ServiceImpl<Mapper,entity> Mapper正常写法,继承baseMapepr<entity> IPage的使用方式 QueryWrapper<MdSaleDayPhone> queryWrappernew QueryWrapper<>…...
使用MATLAB进行遗传算法设计
遗传算法是一种基于自然进化的计算方法,在解决各种优化问题方面具有广泛的应用。MATLAB作为一种强大的数学软件,可以方便快捷地实现遗传算法,并且通过可视化的方式直观地展现算法运行过程和结果。本文将介绍使用MATLAB进行遗传算法设计的步骤…...
mindtorch study
安装 pip install mindtorch mindtorch 用于帮助迁移torch模型到mindspore 大部分都可以直接把mindtorch的torch搞成torch,就和以前的代码一致,注意下面 只有静态图有点点差异 step也有差异 自定义优化器就麻烦了。 pyttorch还是牛啊 并行计算还是用的…...
java八股-SpringCloud微服务-Eureka理论
文章目录 SpringCloud架构Eureka流程Nacos和Eureka的区别是?CAP定理Ribbon负载均衡策略自定义负载均衡策略如何实现?本章小结 SpringCloud架构 Eureka流程 服务提供者向Eureka注册服务信息服务消费者向注册中心拉取服务信息服务消费者使用负载均衡算法挑…...
2024信创数据库TOP30之蚂蚁集团OceanBase
数据库作为存储、管理和分析这些数据的关键工具,其地位自然不言而喻。随着信息技术的日新月异,数据库技术也在不断演进,以满足日益复杂多变的市场需求。近日,备受瞩目的“2024信创数据库TOP30”榜单由DBC联合CIW/CIS权威发布&…...
查找redis数据库的路径
Redis 数据库的路径通常由配置文件中的 dir 参数指定 查找 Redis 配置文件: Redis 配置文件通常命名为 redis.conf。您可以在以下位置查找它: /etc/redis/redis.conf(Linux 系统上的常见位置)/usr/local/etc/redis/redis.conf&…...
DrugLLM——利用大规模语言模型通过 Few-Shot 生成生物制药小分子
摘要 小分子由于能够与特定的生物靶点结合并调节其功能,因此在药物发现领域发挥着至关重要的作用。根据美国食品和药物管理局(FDA)过去十年的审批记录,小分子药物占所有获批上市药物的 76%。小分子药物的特点是合成相对容易&…...
【蓝桥杯C/C++】翻转游戏:多种实现与解法解析
博客主页: [小ᶻZ࿆] 本文专栏: 蓝桥杯C/C 文章目录 💯题目💯问题分析解法一:减法法解法二:位运算解法解法三:逻辑非解法解法四:条件运算符解法解法五:数组映射法不同解法的比较…...
【AI系统】核心计算之矩阵乘
核心计算之矩阵乘 AI 模型中往往包含大量的矩阵乘运算,该算子的计算过程表现为较高的内存搬移和计算密度需求,所以矩阵乘的效率是 AI 芯片设计时性能评估的主要参考依据。本文我们一起来看一下矩阵乘运算在 AI 芯片的具体过程,了解它的执行性…...
Vue.js 自定义指令:从零开始创建自己的指令
vue使用directive 前言vue2使用vue3使用 前言 关于使用自定义指令在官网中是这样描述的 vue2:对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。 vue3:自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。 在 Vue.js 中使用自定义指令…...
策略模式
定义:即定义一系列的算法,算法1,算法2,...,算法n,把他们封装起来,使他们可以相互替换。 优点:使得一个类的行为或者其算法可以在运行时改变,而且使用Context类的人在外部…...
性能优化--CPU微架构
一 指令集架构 Intel X86, ARM v8, RISC-V 是当今广泛使用的指令架构的实例。 大多数现代架构可以归类为基于通用寄存器的加载和存储型架构,在这种架构下,操作数倍明确指定,只能使用夹在和存储指令访问内存。除提供基本的功能之外,…...
在 Sanic 框架中实现高效内存缓存的多种方法
在使用 Sanic 框架开发 Web 应用时,我们可以通过内存缓存来提升应用的性能,减少对数据库或其他外部服务的频繁请求。下面提供一些在 Sanic 中实现内存缓存的基本方法。 使用 Python 内置的 functools.lru_cache 如果你的缓存需求比较简单,且…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
