Appium+Win环境搭建

环境依赖

  • Node.js
  • Appium
  • Appium-desktop
  • Appium-doctor
  • Appium-Python-Client
  • Python
  • JDK
  • Andriod SDK

安装Node.js

下载地址:https://nodejs.org/en/download/releases/

注意:Node.js版本要注意与Appium兼容, 查看Appium版本依赖Node.js版本详情请点击:https://github.com/appium/appium/releases

安装完成后在按键Win+R输入cmd打开Windows 命令提示符,

输入如下命令:

1
2
3
4
5
6
7
C:\Users\Shuqing
λ node -v
v16.13.1

C:\Users\Shuqing
λ npm -v
8.3.0

说明:

  • npm(node package manage)是node.js安装包管理工具,类似Python中的pip工具。
  • 如果显示‘npm’不是内部命令提示,则可以管理员身份运行cmd,如果还是失败,则需要检查一下环境变量是否配置,或者重新安装nodejs。

Appium 安装

Appium Server其实可以通过命令 npm install -g appium来安装。不过由于众所周知的网络原因,直接使用这样安装会非常非常慢,甚至会安装失败,所以我们可以使用国内镜像来安装。

选用的镜像是 淘宝NPM镜像

镜像设置

1
npm config set registry https://registry.npm.taobao.org

appium 安装

使用如下命令来执行安装:

1
2
3
4
5
#安装最新版本
npm install -g appium

#安装指定版本
npm install appium@1.7.2 -g

看到如下命令时则表示下载安装完成。

1
2
3
4
C:\Users\Shuqing
λ npm install -g appium

added 184 packages, removed 7 packages, and changed 502 packages in 28s

npm的包安装分为本地安装(local)、全局安装(global)两种,一般我们推荐使用全局安装。

appium配置

安装完成之后可以使用如下命令查看appium的安装路径

1
2
3
C:\Users\Shuqing>where appium
C:\Users\Shuqing\AppData\Roaming\npm\appium
C:\Users\Shuqing\AppData\Roaming\npm\appium.cmd

appium运行

在控制台输入命令 appium即可启动appium服务,appium -v查看版本

1
2
3
4
5
6
C:\Users\Shuqing>appium -v
1.22.2

C:\Users\Shuqing>appium
[Appium] Welcome to Appium v1.22.2
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

如果输入appium后显示:“appium不是内部或外部命令,也不是可运行的程序或批处理文件” 可以将appium安装的路径 如: “C:\Users\Shuqing\AppData\Roaming\npm”配置到系统环境变量Path中

退出appium

按键 ctrl+c 选择y 即可退出

安装Appium-desktop

下载地址:https://github.com/appium/appium-desktop/releases

上面提到的问题可以使用前面我们已经介绍了Appium Server来解决,Appium-desktop工具其实也封装了Appium server和Node.js依赖环境。

appium-desktop是我们初学者最容易上手的工具,后面课程首先会基于这个工具来讲解!然后再基于appium 命令来讲。

python环境安装配置

见之前的视频教程:3-2 Python 安装与配置

安装成功之后输入命令 python –version看到如下提示即可

1
2
C:\Users\Shuqing>python --version
Python 3.5.0

安装Appium-Python-Client

通过命令: pip install Appium-Python-Client 进行安装。
安装后可以通过如下命令来检测是否安装成功。

输入命令“from appium import webdriver” 回车,如果控制台没有报错,则说明安装成功。

1
2
3
4
C:\Users\Shuqing>python
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from appium import webdriver

如果出现如下报错,则说明安装失败

1
2
ImportError: No module named 'appium'
ImportError: cannot import name “webdriver”

说明:装Appium-Python-Client安装后的路径一般为:

1
{Python 安装路径}\Lib\site-packages\appium

JDK安装配置

jdk下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

jdk环境变量配置

http://jingyan.baidu.com/article/624e74599e8ad834e8ba5a94.html

安装配置完成后,打开命令提示符窗口,然后输入如下面命令有对应提示说明安装配置成功。

1
2
3
4
C:\Users\Shuqing>java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

Andriod sdk 安装

下载地址:
http://tools.android-studio.org/index.php/sdk

根据自己的PC平台下载对应版本即可。

安装完成后需要配置环境变量:ANDROID_HOME,第二章有详细说明。

安装 appium-doctor

appium-doctor可以检测Appium整体依赖环境配置情况。

1
C:\Users\Shuqing>cnpm install appium-doctor -g

  • 在控制台输入命令:appium-doctor 看到如下提示说明整体环境配置成功。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
C:\Users\Shuqing>appium-doctor
info AppiumDoctor Appium Doctor v.1.4.3
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ The Node.js binary was found at: D:\program files\nodejs\node.exe
info AppiumDoctor ✔ Node version is 6.11.3
info AppiumDoctor ✔ ANDROID_HOME is set to: E:\Andriod_sdk
info AppiumDoctor ✔ JAVA_HOME is set to: C:\Program Files\Java\jdk1.8.0_05
info AppiumDoctor ✔ adb exists at: E:\Andriod_sdk\platform-tools\adb.exe
info AppiumDoctor ✔ android exists at: E:\Andriod_sdk\tools\android.bat
info AppiumDoctor ✔ emulator exists at: E:\Andriod_sdk\tools\emulator.exe
info AppiumDoctor ✔ Bin directory of %JAVA_HOME% is set
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor

如果上面某一项显示为“X”则说明相关环境没有配置好,需要重新安装配置。

报错相关

1.fsevents依赖问题

1
2
3
platform unsupported fsevents@1.x Package require os(darwin) not compatible with your platform(win32)
[fsevents@1.x] optional install error: Package require os(darwin) not compatible with your platform(win32)
[24/29] appium-android-driver@1.x installed at node_modules\_appium-android-driver@1.40.1@appium-android-driver

解决方案:
运行下面的命令

1
2
3
npm rebuild node-sass

npm install

  1. appium-chromedriver安装失败
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[1/5] scripts.postinstall appium-uiautomator2-driver@1.73.0 › appium-chromedriver@^4.23.1 run "node install-npm.js", root: "C:\\Users\\Shuqing\\AppData\\Roaming\\npm\\node_modules\\appium\\node_modules\\_appium-chromedriver@4.27.4@appium-chromedriver"
[18:10:58] Error installing Chromedriver: Request failed with status code 404
[18:10:58] Error: Request failed with status code 404
at createError (C:\Users\Shuqing\AppData\Roaming\npm\node_modules\appium\node_modules\_axios@0.24.0@axios\lib\core\createError.js:16:15)
at settle (C:\Users\Shuqing\AppData\Roaming\npm\node_modules\appium\node_modules\_axios@0.24.0@axios\lib\core\settle.js:17:12)
at IncomingMessage.handleStreamEnd (C:\Users\Shuqing\AppData\Roaming\npm\node_modules\appium\node_modules\_axios@0.24.0@axios\lib\adapters\http.js:293:11)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1094:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
[18:10:58] Downloading Chromedriver can be skipped by using the '--chromedriver-skip-install' flag or setting the 'APPIUM_SKIP_CHROMEDRIVER_INSTALL' environment variable.
[npminstall:runscript:error] appium-uiautomator2-driver@1.73.0 › appium-chromedriver@^4.23.1 scripts.postinstall run "node install-npm.js" error: RunScriptError: Run "C:\WINDOWS\system32\cmd.exe /d /s /c node install-npm.js" error, exit code 1
Install fail! RunScriptError: post install error, please remove node_modules before retry!
Run "C:\WINDOWS\system32\cmd.exe /d /s /c node install-npm.js" error, exit code 1
RunScriptError: post install error, please remove node_modules before retry!
Run "C:\WINDOWS\system32\cmd.exe /d /s /c node install-npm.js" error, exit code 1
at ChildProcess.proc.on.code (C:\Users\Shuqing\AppData\Roaming\npm\node_modules\cnpm\node_modules\runscript\index.js:96:21)
at ChildProcess.emit (events.js:182:13)
at maybeClose (internal/child_process.js:962:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
npminstall version: 5.3.1
npminstall args: D:\Program Files\nodejs\node.exe C:\Users\Shuqing\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\bin\install.js --fix-bug-versions --china --userconfig=C:\Users\Shuqing\.cnpmrc --disturl=https://npmmirror.com/mirrors/node --registry=https://registry.npmmirror.com -g appium

解决方案

1
2
3
4
5
6
#设置源
npm config set registry https://registry.npm.taobao.org
#手动安装chromedriver
npm install appium -g --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
# 再重新安装appium
npm install -g appium

参考资料



扫码关注公众号,更多干货秒得到