自动化证券交易(二)——Appium 及驱动

前言

之前安装好了 Android 的虚拟机环境(详见《自动化证券交易(一)------VirtualBox + Android》),这回该安装自动化工具了 ------ Appium。

其实安装 Appium 并不复杂,复杂的是要安装它配套的驱动,我们逐步来看下

环境准备

Nodejs

想安装 Appium,要先安装 Nodejs。不管用的什么系统,都推荐用 nvm(win系统的用 nvm-windows)来管理 Nodejs。当然如果直接装 Nodejs 的 LTS 版本也没问题,只是笔者已经习惯用 nvm 了。注意版本要求:

  • A macOS, Linux, or Windows operating system
  • Node.js version in the SemVer range ^14.17.0 || ^16.13.0 || >=18.0.0
    • LTS is recommended
  • npm version >=8 (npm is usually bundled with Node.js, but can be upgraded independently)

下面列一下 nvm 的一些常用命令:

bash 复制代码
# node version list
nvm ls

# install latest LTS version
nvm install --lts

# set default version
nvm alias default 20.15.1

# set nodejs mirror
nvm node_mirror https://npmmirror.com/mirrors/node/

# use cnpm
npm install -g cnpm --registry=https://registry.npmmirror.com

# use npm mirror
npm config set registry https://registry.npmmirror.com

Android SDK

安装 Android SDK 有 2 种方法,一种是先安装 Android Studio,然后用它安装 SDK。另一种是手动下载所需文件。后者明显更轻量,笔者先尝试了第二种,结果没成功,然后又用了第一种,成功之后又优化了第二种。下面分别说下:

用第一种方法,注意在启动了 Android Studio 之后,让你安装扩展的时候,要选择自定义。必须要选的是 platform-tools、emulator、command-line tools,其它的先不用装。记得修改一下 SDK 的路径,我写的是 D:\Android\Sdk。

下面说下第二种方法:

注:

后来笔者发现,不安装 emulator 好像也可以,但是过不了后面 appium doctor 检测的那关。甚至修改 cmdline-tools 那一步都不需要。不过还是推荐 appium doctor 检测的标准吧,所以正常按照下面的方法做也没问题。

追求极致的同学,如果不修改 cmdline-tools 那一步,恐怕要再尝试修改下环境变量了,这里笔者犯懒就没研究了,只是给大家一个思路。

  1. 分别下载 Android command-line tools、Android SDK Platform-Tools、Android Emulator;
  2. 新建 D:\Android\Sdk 目录,然后把上面下载的都解压到这个目录下,目录名应该分别是 cmdline-tools、platform-tools、emulator;
  3. 这步比较关键,在 cmdline-tools 目录下新建一个 latest 目录,然后把原本这个目录下的内容全部移进去。起码我用的这个版本需要这么做,后续这个 bug 也许会被修复,大家按情况来;

用 Android Studio 其实还有个好处,就是可以有自带虚拟机。因为之前技术选型选了 VirtualBox,相对来说更自由,所以这里先打个标签记录下。如果有机会直接研究下 Android Studio 全家桶。

无论哪种方法,最后都要修改一下系统环境变量,新建 ANDROID_HOME = D:\Android\Sdk,修改 Path 新增 %ANDROID_HOME%\platform-tools。

Java JDK

到 Oracle 下载最新版 JDK,注意不是 JRE 。我下载的是一个 zip 文件,解压到了 D:\java\ 目录下,目录名大概是 jdk-22.0.1。

然后修改环境变量,新建 JAVA_HOME = D:\java\jdk-22.0.1,修改 Path 新增 %JAVA_HOME%\bin。

注意:

通常 nvm 已经加到环境变量里了,如果没加的话,自己加一下。变量大概是 NVM_HOME = C:\Users\Administrator\AppData\Roaming\nvm、NVM_SYMLINK = C:\Program Files\nodejs,然后 Path 里加上 %NVM_HOME%、%NVM_SYMLINK%。

然后可以运行一下下面的命令,看一下是否成功安装。如果有异常的话,查看一下环境变量是不是没配置对。

bash 复制代码
adb --version
java --version
javac --version

安装 Appium 及 UiAutomator2

成功安装了 Nodejs 之后,运行下面命令安装 Appium 即可:

bash 复制代码
# install
npm i -g appium

# update
npm update -g appium

# check
appium -v
# 2.11.2

想要 Appium 操作其它系统,必须要安装配套的驱动。因为我们要操作的是 Android,所以要安装 UiAutomator2。直接运行下面的命令即可。

bash 复制代码
# install
appium driver install uiautomator2

# check
appium driver doctor uiautomator2

如果运行检查的命令,出现 Bye! All issues have been fixed!,那么就是没问题了。

注: 貌似 doctor 的校验不过,也可以正常运行。但是可能会在某些特殊场景有坑,所以笔者还是把错误都 fix 了。

如果出问题通常是下面这几个的问题,大家参照正确的配置找下问题吧:

info Doctor ✔ ANDROID_HOME is set to: D:\Android\Sdk

info Doctor Checking adb, emulator, apkanalyzer.bat

info Doctor 'adb' exists in D:\Android\Sdk\platform-tools\adb.exe

info Doctor 'emulator' exists in D:\Android\Sdk\emulator\emulator.exe

info Doctor 'apkanalyzer.bat' exists in D:\Android\Sdk\cmdline-tools\latest\bin\apkanalyzer.bat

结语

折腾了一通,终于把 Appium 装完了。果然编程最麻烦的就是装环境,要不是笔者还算有点经验,真的直接就劝退了。感觉即使上 ChatGPT 也还是挺困难的,看来咱们程序员的饭碗还能保住一阵(强行自我安慰)......

接下来就是尝试把 Appium 跟 Android 虚拟机连通了。由于本篇篇幅已经很长了,所以打算另起一篇。各位拭目以待吧。

TO BE CONTINUED...

相关推荐
阿俊-全栈开发10 小时前
LikeShop 单商户SaaS商城分销模块二开:佣金计算与结算逻辑实现
java·开发语言·微服务·likeshop·likeshop开源商城·likeshop多商户
wuminyu13 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
半摆烂日常13 小时前
低代码平台API对接实践:接口鉴权与数据同步的完整实现
android·低代码·rxjava
事圆则缓14 小时前
volatile 使用场景全解析:它能保证什么,又解决不了什么
android
蒲公英内测分发15 小时前
智能投影仪参加海外展会,未上架的 Android 配套 App 怎么让客户限时试用?
android
ii_best15 小时前
按键精灵手机端开发安卓版实战:手写一个可最小化、可拖动的「运行日志悬浮窗」(附完整 源码 + 踩坑记录)
android·ios·智能手机·自动化·ai编程·按键精灵
终端安全笔记15 小时前
安卓做 MDM 管控,先分清三种注册入口
android·安全·智能手机
蜗牛互联网15 小时前
WSL Containers GA:本地AI容器的生命周期、网络与治理验收
java·网络·人工智能·后端
龙亘川16 小时前
铭记英烈守初心,数字强基促服务:亘川智城退役军人服务系统的实践与价值
java·数据库·人工智能
OxYGC16 小时前
[AI工程] Spring AI 第廿一篇:存量 REST 接口的 MCP 化改造实录——工具从哪条路径注册、参数描述怎么写、身份怎么过去
java·人工智能·spring