MAC平台基于Python Appium环境搭建过程图解


Posted in Python onAugust 13, 2020

前言

最近笔者要为python+appium课程做准备,mac在2019年重新安装了一次系统,这次重新在mac下搭建appium环境,刚好顺带写个文稿给大家分享分享搭建过程。

一、环境和所需软件概述

1.1 目前环境:

MacOS(10.15.3)

1.2 所需软件:

jdk-8u91-macosx-x64.dmg (jdk1.8及以上版本应该都可以)
android-sdk_r24.4.1-macosx.zip (mac版本的android-sdk)
genymotion-3.0.4.dmg (非常好用的android虚拟机软件)
VirtualBox.pkg (5.2.34版本,一般使用最新版本即可,mac上安装genymotion必备的软件)
Appium-mac-1.15.1.dmg(appium桌面版)
python 3.8.0
pycharm2019.02.05(Community Edition 免费公共版本即可)

二、搭建过程详述

2.1 mac下搭建jdk

2.1.1 先按平时的方法双击dmg文件,根据提示安装完成

2.1.2 在mac下配置java的环境变量

步骤一:打开mac终端命令行工具,输入“/usr/libexec/java_home -V”,查找java安装路径,如下图:

MAC平台基于Python Appium环境搭建过程图解

步骤二:复制java安装路径后,再输入 “vi ~/.bash_profile” ,在该文件下新增如下图:

MAC平台基于Python Appium环境搭建过程图解

(步骤三)保存文件之后,输入命令" source ~/.bash_profile",让环境变量生效。

2.1.3 依次输入命令“java -version” 和 “javac” 执行,检查 jdk是否安装成功。(不提示command not found 即安装成功)

2.2 mac下搭建android-sdk

2.2.1 下载好android-sdk_r24.4.1-macosx.zip后解压到一个指定路径,如下图所示在用户下面新建一个software目录:

MAC平台基于Python Appium环境搭建过程图解

2.2.2 在mac下配置android-sdk的环境变量,如下图操作:

MAC平台基于Python Appium环境搭建过程图解

保存文件之后,输入命令" source ~/.bash_profile",让环境变量生效。

2.2.3 在命令行继续输入 “android -v ” ,自动打开SDK Manager,如下图所示:

MAC平台基于Python Appium环境搭建过程图解

注意,上一步配置环境的步骤中最后配置一行的29.0.2根据你最新的build_tools版本来,我截图这边已有最新版本29.0.3

2.2.4 依次输入命令"adb" 、“android -v” 、“aapt”执行,检查是否sdk都对应正确。(不提示command not found 即配置成功)

2.3 mac安装genymotion

genymotion为好用的、专业的android虚拟机环境,当然也可以安装比如 天天模拟器等安卓环境(这种模拟器一般玩手游用)。

2.3.1 安装VirtualBox.pkg,官网下载最新版本,直接安装即可,不需进行任何配置

2.3.2 安装genymotion-3.0.4.dmg ,下载到genymotion后,直接安装即可,打开如提示升级,根据提示下载最新版本再次安装即可

2.3.3 到https://www.genymotion.com/account/login/ 网址上注册一个genymotion用户账号,用来登录PC端的genymotion软件

2.3.4 如下图,选择所需android系统版本的虚拟机下载安装即可(没VPN,此过程中途会中断,不过点重试下载几次就能下载完)

MAC平台基于Python Appium环境搭建过程图解

2.4 mac安装Appium桌面版

2.4.1 Appium是使用nodejs环境开发的,安装Appium之前,先提前把nodejs环境安装好

步骤一:在命令行输入

···
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
···

用来安装brew 程序(Homebrew简称brew,OSX上的软件包管理工具),使用上述命令过程中要求输入mac登录用户的密码,输入回车即可,过程中需要下载稍微有点慢

步骤二:在命令行输入 “brew install node” ,用来安装nodejs和npm程序,如下图所示:

MAC平台基于Python Appium环境搭建过程图解

2.4.2 Appium可以通过命令行安装和桌面版安装两种方式,建议初学者用桌面版,不仅安装使用方便且可以后续做手机APP自动化进行元素定位使用。

下载好Appium-mac-1.15.1.dmg后,直接双击根据提示安装即可,安装好打开的界面如下:

MAC平台基于Python Appium环境搭建过程图解

2.5 mac安装python和Appium-Python-Client

2.5.1 mac下安装python比较简单,只需要下载python安装包,双击下一步根据提示即可安装完成。
注意:由于mac下自带了python2.7环境,所以要使用你最新安装的python3,你需要在命令行输入“python3 ” / 安装软件需要输入 "pip3",默认的“python”和“pip”命令都是python2.7环境的命令。

2.5.2 Appium-Python-Client是appium在python下的第三方客户端模块,可以使用命令行"pip3 install Appium-Python-Client" 进行安装即可。

2.6 mac下安装pycharm

下载好pycharm安装包后,根据提示信息安装完后打开即可使用。(步骤略)

2.7 环境检查和试用

步骤一:启动genymotion中的android虚拟机

步骤二:打开appium桌面版,弹出界面,不做任何配置点击启动即可

步骤三:打开pycharm,新建项目后,编写如下python代码:

import selenium
import time
from appium import webdriver

des = {
  'platformName': 'Android', 
  'platformVersion': '9.0', #填写android虚拟机的系统版本
  'deviceName': 'Samsung Galaxy S9',  #填写安卓虚拟机的设备名称
  'appPackage': 'com.ibox.calculators',  #填写被测试包名
  'appActivity': '.CalculatorActivity',  #填写被测试app入口
  'udid': '192.168.56.101:5555', # 填写通过命令行 adb devices 查看到的 uuid(指定已连接在MAC上的虚拟机)
  'noReset': True,
  'unicodeKeyboard': True,
  'resetKeyboard': True,
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', des)

步骤四:运行代码,能成功见到android虚拟机启动被测APP即为环境部署成功。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
使用Python写CUDA程序的方法
Mar 27 Python
python正则实现计算器功能
Dec 14 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
Python3 实现串口两进程同时读写
Jun 12 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
python中的列表和元组区别分析
Dec 30 Python
如何用python实现一个HTTP连接池
Jan 14 Python
Python移位密码、仿射变换解密实例代码
Jun 27 Python
基于Python实现对比Exce的工具
Apr 07 Python
Expected conditions模块使用方法汇总代码解析
Aug 13 #Python
深入了解Python装饰器的高级用法
Aug 13 #Python
python高级特性简介
Aug 13 #Python
Pytest如何使用skip跳过执行测试
Aug 13 #Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 #Python
Python logging模块原理解析及应用
Aug 13 #Python
matplotlib基础绘图命令之imshow的使用
Aug 13 #Python
You might like
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
2013/05/15 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
解读ES6中class关键字
2017/11/20 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
Python中使用PDB库调试程序
2015/04/05 Python
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
PyQt5 多窗口连接实例
2019/06/19 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
师德承诺书2015
2015/04/28 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
Python面向对象编程之类的概念
2021/11/01 Python