【AppiumOC】Appium安装及环境配置

本文详细介绍了如何安装和配置Appium,包括通过Node.js搭建AppiumServer,处理安全问题,安装驱动,配置移动设备与SDK,以及使用AppiumInspector进行UI分析。还涉及了Capabilities的基本概念和使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. Appium相关官方文档

二. 安装及环境配置

1. Appium Server

Appium Server 的安装其实还可以通过 Appium Desktop 一步实现。但 Appium Desktop 在 v1.22 时发现了安全问题并且宣布不再维护,因此我们选择单独搭建Appium Server。

(1)Node.JS

Appium Server 是通过 Node.JS 实现的,因此我们需要先配置 Node.JS 环境

  • 在 Node.JS 官网下载安装包之后安装即可
  • 使用命令 node -vnpm -v 检查环境及版本,如果正常显示版本则证明安装成功
    • 如果需要更改 npm 的镜像源时可以使用指令 npm config set registry <镜像源地址> 更改,并使用指令 npm config get registry 确定镜像修改成功

(2)appium & appium-doctor

  • npm install -g appium 以全局安装appium服务(linux/mac如果安装时遇到权限引起的问题可以使用 sudo npm install -g appium
  • npm install -g appium-doctor 以全局安装appium环境检测工具,该工具用来检测 appium 环境是否满足需求
    执行 appium-doctor 对环境进行检测,检测结果如下(此处显示的并不是完整结果,只是截取了部分)在这里插入图片描述
    • 检测结果中状态为WARN且为黄色 x 的条目我们可以先忽略(例如图中的 opencv4nodejs cannot be found.)

(3) 配置driver

如果我们不配置driver直接启动appium时会提示我们 No drivers have been installed,这是由于 Appium 2.0+ 驱动是分开管理的,因此我们需要单独安装驱动

appium driver list 查看所有可用的驱动列表
在这里插入图片描述
我们暂时先只安装Android常用驱动 uiautomator2 即可,执行 appium driver install uiautomator2 进行安装(同样如果linu/mac有权限问题可以使用 sudo appium driver install uiatomator2

2. 移动设备与SDK

我们暂时只考虑并使用安卓手机进行操作,我们需要安装sdk并连接到手机

  • sdk安装可以参考文章:AndroidSDK安装(Mac) AndroidSDK安装(Windows)
  • 可以考虑使用夜神模拟器:下载地址
    • 启动之后我们需要执行 adb connect 127.0.0.1:62001 让adb识别到模拟器(如果是真机则需要启动开发者模式才可以被adb识别)
    • adb devices 命令可以找到设备证明已经正常连接到模拟器

adb connect <ip:port> 指令可以连接到非线控设备

3. 环境验证

到此为止我们的Appium Server已经配置完毕并且可以进行测试了,提供测试代码如下

import time
from appium import webdriver
from appium.options.common.base import AppiumOptions

options = AppiumOptions()
opts = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
)

driver=webdriver.Remote('http://localhost:4723', options=options.load_capabilities(opts))
print("启动【设置】应用")
time.sleep(5)
driver.quit()
  • 终端执行指令 appium 启动 Appium Server
  • adb devices 确保adb连接设备正常
  • 将代码保存并通过 Python 执行即可,如果可以正常打开+关闭手机设置证明一切正常

4. Appium Inspector

Appium Inspector 对我们帮助很大,例如分析UI,录制,定位元素。因此我们需要安装 Appium Inspector 供我们使用(下载地址在第一章已经提供)

安装并打开 Appium Inspector 之后我们需要对 Desired Capabilities 进行配置,下面所展示的所有字段都是必填字段,需要根据实际填写在这里插入图片描述

  • platformName:设备的系统平台,例如:Android、iOS
  • appium:automationName :我们使用的 driver 的名字(启动 Appium Server 时会展示该字段信息,复制粘贴即可)

字段填写完毕之后点击 Start Session 按钮就可以连接到设备(注意一定要确保 Appium Server 已经启动,设备已经被adb识别。)在这里插入图片描述
大多数时候我们希望捕获的是一个应用内的页面。此时有两种方法,其一是我们操作设备之后刷新 Appium Inspector,其二是我们接下来要重点说的方式,增加 Desired Capabilities 配置信息
在这里插入图片描述
配置信息前我们需要找到应用对应的包名及激活页

执行指令 adb logcat ActivityManager:I | grep "cmp" 该指令会动态展示日志,因此当执行指令之后打开我们想启动的应用,此时日志最底部新生成的日志便包含我们应用的信息,当中 cmp 内容就是我们想要的包信息,其结构为 appPackage/appActivity。

  • appium:deviceName:该字段是我们自定义的一个命名,通常设置为adb识别到对应设备的设备名
  • appium:appPackage:我们想要启动的应用的包名,即我们刚才找到的 appPackage
  • appium:appActivity:页面名字,即刚才我们找到的 appActivity
    填写配置完毕之后点击 Start Session 按钮就会连接到设备并打开指定应用

三. Capabilities

Capabilities 并不是我们的重点,但确是使用Appium没法绕开的话题,仅此我们在本章将会简单的进行介绍。

Capabilities 是用来对 driver 进行配置的参数,以键值对的形式设置。对于不同的驱动可能有不同的参数且并不是所有的驱动都可以接受所有参数。
但无论在任何时候有两个参数是必须要设置的:

  • platformName 设备类型,通常为Android,iOS
  • appium:automationName 要使用的驱动,例如我们之前安装的 Uiatomator2

观察上述两个参数中 automationName 比较特殊,在他之前加入了 appium: 的前缀。这是由于 WebDriver 规范要求任何非标准拓展之前都需要加入空间前缀以表明引入该功能的应用商。标有前缀的参数不是少数,因此我们有一种特殊的写法来避免重复书写前缀

capabilities = {
    "platformName": "Android",
    "appium:options": {
        "automationName": "UiAutomator2",
        "noReset": True
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值