Mac安装配置Appium

Appium 是一个开源自动化框架, 为各种不同的移动、桌面和物联网平台提供基于WebDriver的自动化可能性。 Appium 是模块化和可扩展的,并且支持多种编程语言,这意味着相关软件有一个完整的生态系统:

  • 驱动程序添加了对自动化特定平台的支持
  • 客户端允许使用您选择的编程语言编写 Appium 测试
  • 插件允许进一步扩展 Appium 功能
一、安装 nodejs 与 npm
  • 安装方式与 windows 类似 ,官网下载对应的 mac 版本的安装包,双击即可安装,无须配置环境变量。
  • 官方下载地址:
    https://nodejs.org/en/download/ 

二、安装 appium

Appium 分为两个版本,一个是有界面的Appium(下载安装文件即可安装),一个是无界面的命令行版本(需要命令安装),建议都安装上。

  • 有界面的Appium Desktop:包含 appium 服务,录制工具,查看页面布局及查找元素的功能。
    • 方法一:官网下载进行安装(不推荐,不FQ的话,有时候很难下载到),地址:http://appium.io/
    • 方法二:从下面的链接下载,各个版本都有,可以下载需要的。

注:

自 2022 年 1 月 1 日起,Appium 团队不再维护或支持 Appium 1。所有官方支持的平台驱动程序仅与 Appium 2 兼容。

如果您使用 Appium Desktop 或 Appium Server GUI,您将无法升级到 Appium 2,因为这两个工具已被弃用。请将Appium Inspector 与独立的 Appium 2 服务器结合使用。

1、命令行安装

npm install -g appium

安装过程截图:

 查看appium server是否安装成功

appium -v

终端出现对应的版本号代表安装appium server安装成功,如下图所示:

Appium 支持跨各种平台的应用程序自动化,例如 iOS、Android、macOS、Windows 等。每个平台都由一个或多个“驱动程序”支持,这些驱动程序知道如何自动化该特定平台。您可以在Appium 生态系统的驱动程序页面中找到官方支持的驱动程序和第三方驱动程序的完整列表 。 

 2、检查appium安装是否成功

使用appium doctor来检查appium的是否成功安装:

(1)安装 appium-doctor,检查你的appium环境是否安装成功

npm install appium-doctor -g

安装完成后,终端输入appium-doctor 检测环境是否成功,如下图所示提示报错
1)java环境变量未配置

2)android, emulator, apkanalyzer could NOT be found

 问题解决方案:Appium环境安装---macOS系统 (M1芯片)-CSDN博客

通过上述解决方案配置了Android SDK的环境变量,发现在SDK的目录还是一直找不到android,

问题原因:Android Studio中没有安装 Android SDK Tools

解决方法:

配置tools的环境变量 

参考:android返回错误AppiumDoctor✖安卓在/Library/Android/sdk中找不到!论macOS-腾讯云开发者社区-腾讯云

3、安装Appium客户端库

  • 客户端库允许使用不同的编程语言编写 Appium 测试。有官方支持的 Java、Python、Ruby 和 .NET C# 客户端,以及其他语言的第三方客户端。您可以在Appium 生态系统的客户页面找到完整的客户列表 。
  • 根据你选择的编程语言(如 Java、Python、JavaScript 等),安装相应的 Appium 客户端库。这些库提供了与 Appium 服务器进行通信的方法。

下面以安装Appium的Python客户端库为例进行进行详细的操作安装:

a. 前提条件:首先,确保你的计算机上已经安装了 Python。你可以从 Python 官方网站下载并安装最新版本的 Python。

b. 使用pip安装Appium-Python-Client 

pip3 install Appium-Python-Client

c. 验证安装:安装完成后,你可以运行以下命令来验证是否成功安装了 Appium-Python-Client: 

pip3 show Appium-Python-Client

执行上面的命令,成功显示安装包的信息,说明安装Appium-Python-Client.

Name: Appium-Python-Client
Version: 4.0.0
Summary: Python client for Appium
Home-page: http://appium.io/
Author: Isaac Murchie
Author-email: isaac@saucelabs.com
License: Apache 2.0
Location: /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages
Requires: selenium
Required-by: 

4. 启动appium服务器

使用appium 启动,或者appium server启动。# Start the server on the default host (0.0.0.0) and port (4723)

也可以指定地址和端口:

appium --address 127.0.0.1 --port 9000 --base-path /wd/hub

4. 编写测试脚本:

  • 接下来,你可以使用 Python 编写测试脚本,利用 Appium-Python-Client 提供的方法来自动化测试移动应用程序。

测试demo:

from appium import webdriver

desired_caps = {
    "platformName": "Android",
    "platformVersion": "10", #adb shell getprop ro.build.version.release
    "deviceName": "127.0.0.1:20034",
    "appPackage": "your appPackage",
    "appActivity": ".main.MainActivity"
}
print(type(desired_caps))
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)

--------------------------------------------运行demo 遇到问题总结--------------------------------------------------

1、报错:

driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/appium/webdriver/webdriver.py", line 229, in __init__
    super().__init__(
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 188, in __init__
    capabilities = options.to_capabilities()
                   ^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'to_capabilities'

原因是Appium-Python-Client与Selenium版本不兼容,我使用两个包的版本如下:

可能是这两个版本都是最新的,导致的不兼容,下面修改这两个包的版本为:

Appium-Python-Client 2.11.0、Selenium 4.10.0版本

运行以后还会报错:参数错误,提示没有驱动参数:

"automationName": "uiautomator2",

添加好以后,继续运行还是报错,提示没有安装uiautomator2驱动,

运行appium driver install uiautomator2安装驱动,安装成功以后运行:

appium driver list --installed 查看安装是否成功。

2、请求参数desired_caps(dict)类型中的appActivity参数不对。获取方式:使用 adb 命令行工具。

adb shell dumpsys activity activities | grep mResumedActivity 命令来查找当前由用户接触的活动。这个命令会输出一个包含当前活动的字符串,其格式通常是 packageName/activityName

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值