自 2022 年 1 月 1 日起,Appium 不再维护 Appium 1.x,官方支持的平台驱动程序的所有最新版本均不兼容 Appium 1.x,需要 Appium 2 才能运行。开启了全新的Appium 2.0之旅。可通过官方文档查看Appium2 移除的功能和新增的功能。
第一步、安装 node.js
Appium2 目前只能通过 node 安装,首先访问 node 官网下载 node
第二步:安装 SDK
可以通过 Android Studio 、旧版SDK 下载 SDK
安装完成后要设置环境变量
1、打开终端,输入:
$ vim ~/.bash_profile
2. 编辑文件,配置以下的环境变量:
- 在环境变量中配置
ANDROID_HOME
变量,值为SDK的根目录,之后将四个文件夹配置到path变量中,并使用source命令或者重启让配置生效
注意!其中的分隔符是英文的冒号,最后结尾不要忘了加上$PATH,修改PATH变量要慎重,确认没问题再保存,不然容易出现系统挂掉的情况
export ANDROID_HOME=/Users/xxx/Library/Android/sdk(SDK根目录)
export PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH"
3.配置生效,终端输入
$ source ~/.bash_profile
4.确认配置是否生效
- 在命令行执行
adb version
,确认没有报错,提示的adb位置是之前所安装的sdk目录下 - 在命令行执行
emulator -version
,确认没有报错,并且显示了Android emulator version信息
第三步:下载 JDK
安装1.8版本的JDK,可以在官网下载
安装完成后要设置环境变量,并使用source命令或者重启让配置生效
export JAVA_HOME={jdk的根目录路径}
export PATH=$PATH:$JAVA_HOME/bin
检测是否安装成功:
$ java -version
第四步:安装 Appium
⚠️注意:如果有安装旧版本appium1.X,需要先卸载旧版本appium,再安装新版本appium
$ npm uninstall -g appium
终端输入下方命令全局安装 Appium
$ npm i --location=global appium
安装后输入appium,看页面有如下提示
安装appium驱动和插件
安装 UiAutomator2 驱动程序
$ appium driver install uiautomator2
安装xcuitest驱动程序
$ appium driver install xcuitest
安装完成后输入appium driver list,页面有如下信息
查看已安装的插件列表:
$ appium driver list --installed
要列出所有可用的 Appium 插件:
$ appium plugin list
要安装 Appium 插件,请使用以下命令并将“xxxx”替换为您要安装的插件的名称:
$ appium plugin install xxxx
第五步:安装appium inspector
Appium Inspector下载地址:Releases · appium/appium-inspector · GitHub
打开软件,配置如下json,根据自己手机信息和软件信息配置:
{
"platformName": "Android",
"automationName": "uiautomator2",
"appPackage": "com.android.settings",
"appActivity": ".Settings"
}
配置好保存启动inspector客户端,可以查看手机客户端中页面各元素的信息
第六步:安装Appium Python 客户端,通过编写python脚本运行appium
安装命令为pip install Appium-Python-Client
安装完成后,启动appium,运行python脚本就可以看到启动效果了
import unittest
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
capabilities = dict(
platformName='Android',
automationName='uiautomator2',
deviceName='Android',
appPackage='com.android.settings',
appActivity='.Settings'
)
appium_server_url = 'http://localhost:4723'
class TestAppium(unittest.TestCase):
def setUp(self) -> None:
self.driver = webdriver.Remote(appium_server_url, capabilities)
def tearDown(self) -> None:
if self.driver:
self.driver.quit()
def test_find_wlan(self) -> None:
el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="WLAN"]')
el.click()
if __name__ == '__main__':
unittest.main()