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 如果你的缓存需求比较简单,且…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
