Appium主要是通过调用安卓提供的接口来执行命令的,所以需要安装Java和安卓SDK。

1.安装Appium服务端

appium的服务端是基于node的,直接使用npm(node包管理器)安装即可,比较简单。

npm install -g appium

2.安装Python客户端

pip install Appium-Python-Client

同样直接使用pip安装即可。

3.安装Java环境

brew tap AdoptOpenJDK/openjdk

brew install adoptopenjdk8

配置环境变量

JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
CLASS_PATH="$JAVA_HOME/lib"
PATH=".$PATH:$JAVA_HOME/bin"
export PATH=/usr/local/bin:$PATH

4.安装安卓SDK

brew install --cask android-platform-tools

配置环境变量:

export ANDROID_HOME=/Users/xxx/Library/Android/sdk

其中xxx为用户名。

完成之后,将安卓手机连接到电脑,注意手机的开发者权限之类的全部开启。

然后执行 adb devices,可以显示设备,则安装成功。

其实通过brew安装的软件默认在命令行是可以直接打开不用配置环境变量的,因为brew设置了软链接,但是appium的服务无法读取到,所以上面还是需要配置一下。

5.连接测试

根据上面的配置之后,环境基本安装完毕,下面来测试一下,首先启动appium服务端。

命令行执行:appium,出现欢迎界面则没有问题。

主要是测试一下 Appium Inspector,这个是Appium提供的查看手机app元素以及其它功能的桌面软件,可以大大提升开发效率。

下载打开这个软件,远程主机、端口、路径都使用默认不填即可,主要填一下右下角的 JSON Representation:

'platformName': 'Android', # 被测手机是安卓
'automationName' : 'UiAutomator2',
'appPackage': 'tv.danmaku.bili', # 启动APP Package名称
'appActivity': '.ui.splash.SplashActivity', # 启动Activity名称
'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
'resetKeyboard': True, # 执行完程序恢复原来输入法
'noReset': True, # 不要重置App 'newCommandTimeout': 6000,

填上最前面的platformName和automationName就可以,其它都是选配。

6.python代码测试

执行官网的python示例代码:

import unittest

from appium import webdriver
from appium.options.android import UiAutomator2Options
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,
options=UiAutomator2Options().load_capabilities(capabilities),
) def tearDown(self) -> None:
if self.driver:
self.driver.quit() def test_find_battery(self) -> None:
el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="电池"]')
el.click() if __name__ == "__main__":
unittest.main()

成功则表示正常连接

Mac搭建appium环境及python运行代码示例的更多相关文章

  1. Mac搭建appium环境

    1.安装brew 查看是否已经装上brew,终端输入命令:brew --version,已经装上的就不用再装了: 如果没有安装,终端输入命令:ruby -e "$(curl -fsSL ht ...

  2. RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

    消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...

  3. 一文带你趟过mac搭建appium测试环境的遇到的坑

    做UI自动化,最难的一步就是在环境搭建上,怎么去搭建一个UI自动化测试的环境,会难住很多人,在Mac上搭建appium如何搭建呢,本文带着大家去领略如何在mac上搭建appium测试环境.下面就是详细 ...

  4. Caffe学习系列(一)Ubuntu16.04下搭建编译Caffe环境,并运行MNIST示例(仅CPU)

    前言: 正文: 1.安装必要依赖包: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev l ...

  5. mac下Appium环境配置

    一.Appium环境搭建 1.xcode(需要OS X版本支持): 下载对应版本的xcode(支持对应手机系统),解压,拖入应用程序. xcode下载地址:https://developer.appl ...

  6. 分析脚本搭建docker环境:python, R

    1. 搭建Anaconda Python3.6 FROM nvidia/cuda:8.0-cudnn6-devel-ubuntu16.04 MAINTAINER Tyan <tyan.liu.g ...

  7. mac for appium环境安装

    之前写过windows 安装appium环境步骤. 1. 需求的前置条件如下 (mac 自动git.ruby.brew命令): 2. java  环境 3. git 环境 4. ruby环境 5. b ...

  8. mac上搭建appium环境过程以及遇到的问题

    Mac环境安装appium 一.Java环境 下载java sdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...

  9. 基于Mac的Appium环境搭建(java)

    一.jdk安装 1.下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装 3.配置环境变量: ope ...

  10. lua 学习 (一 )Mac搭建lua环境和ide

    今天开始学习lua  首先是搭建环境 和 我的hello world 首先 交代一下我用的是 Mac 系统 所以在Mac上安装lua 环境很方便的 lua  Mointain Lion - Lua 5 ...

随机推荐

  1. 6 定时器 &中断管理&资源管理

    生成函数 周期,多久触发一次定时器(从定时器启动开始计算)  触发什么呢? 回调函数被调用,被谁调用呢 1,tick中断去调用timer函数  Linux中使用这个  (定时器回调函数若执行时间过长, ...

  2. vscode 提取扩展时出错 XHR failed

    vscode 提取扩展时出错 XHR failed 起因 vscode 安装 Bracket Pair Color DLW 插件,商店打不开了 解决方案 打开 hosts 添加 13.107.42.1 ...

  3. Garnet: 力压Redis的C#高性能分布式存储数据库

    今天看到微软研究院开源了一个新的C#项目,叫Garnet,它实现了Redis协议,可以直接将Redis替换为Garnet,客户端不需要任何修改.根据其官网的信息,简单的介绍一下它. 开源仓库地址:ht ...

  4. 09.Java数据算法

    好消息 博客笔记大汇总[15年10月到至今],包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期 ...

  5. C++ Concurrency in Action 读书笔记二:用mutex互斥锁保护在线程间共享的数据

    Chapter 3 线程间共享数据 3.2 用互斥锁保护共享数据

  6. 解决maven编译错误:程序包com.sun.xml.internal.ws.spi不存在

    转自https://blog.csdn.net/mn960mn/article/details/51253038 解决方法如下: 添加maven-compiler-plugin插件,并且配置compi ...

  7. matlab学习系列

    matlab系列学习 1.学习缘由 本来已经学习过这个软件,了解了包括电路仿真在内的诸多功能,能够比较熟练地编写m文件和函数. 但是,在最近的依次练习中发现之前的许多操作都忘记了.有一些基本的语法都不 ...

  8. 英语文档阅读学习系列之ZYNQ-7000 All Programmable SOC Packaging and Pinout

    UG865-Zynq-7000-pkg-pinout 1.Table 一个overview和其他部分的构成一个整体. 2.overview This section describes the pin ...

  9. KingbaseES 等待事件之LWLock lock_manager

    背景 相信我们不止一次遇到过一个等待事件:LWLock lock_manager.下面我们聊聊这个等待事件的含义,产生原因,以及解决方法. 等待事件含义 当数据库维护共享锁的内存区域以在无法实现以fa ...

  10. Spark的基本原理

    Application Application是在使用spark-submit 提交的打包程序,也就是需要写的代码.完整的Application一般包含以下步骤:(1)获取数据(2)计算逻辑(3)输出 ...