记录一次Mac上安装配置Appium + python

第一次 mac 上安装 appium 做一下笔记,记录下操作的步骤和遇到的问题及解决方法,网上大把的教程,这里也是参考各位大神进行整理的笔记,如记录有误,也请多多指教!

要用到的软件

个人感觉 Mac 系统中安装 appium 稍微比win较麻烦一点

nodejs 
JAVA jdk
android sdk
appium
Python          # 个人使用python3
pycharm

安装 node.js

下载地址:https://nodejs.org/zh-cn/
直接双击下一步进行安装,安装完成后命令行输入命令查看安装是否成功

# 查看node安装是否成功
node -v

# 查看npm安装是否成功
npm -v

安装cnpm

npm有时会因网络问题下载报错,所以用淘宝的 cnpm 替代,本人在使用中安装软件有时会报错,不一定能正常使用;安装:依然先使用 npm 进行安装 cnpm,命令行命令如下:

npm install -g cnpm --registry=https://registry.npm.taobao.org

# 查看cnpm版本号,是否安装成功
cnpm -v       

配置java jdk环境变量 、 android sdk环境变量

JAVA 环境

官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载 Java 的 dmg包一路下一步默认路径安装,java安装路径一般在:

/Library/Java

配置环境变量,在家目录下的一个隐藏文件 .bash_profile,无该文件时自行创建

# 打开编辑变量文件
sudo vi ~.bash_profile

输入如下格式java变量,路径填写个人实际路径

export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home'
export CLASS_PATH=.:$JAVA_HOME/lib
export PATH=${PATH}:$JAVA_HOME/bin

设置完成后需执行该文件以生效

source ~/.bash_profile

配置完成后,命令行输入 java -version 查看版本以检测配置是否成功

Mac-mini:~ Mac$ java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
android sdk 环境变量

下载站点:https://www.androiddevtools.cn/#

image.png

将压缩包解压到自己的目录下,打开编辑变量文件,添加环境变量

sudo vi ~.bash_profile

添加进安卓sdk的变量,文件实际路径查看自己解压的目录,第四行根据自己实际版本填写

export ANDROID_HOME=/Users/gametest/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
export PATH=${PATH}:${ANDROID_HOME}/build-tools/28.0.1

设置完成后需执行该文件以生效

source ~/.bash_profile

执行后输入 adb 检测是否成功

Mac-mini:~ NiHao$ adb
Android Debug Bridge version 1.0.41
Version 29.0.1-5644136
Installed as /Library/android-sdk-macosx/platform-tools/adb

global options:
 -a         listen on all network interfaces, not just localhost
 -d         use USB device (error if multiple devices connected)
 -e         use TCP/IP device (error if multiple TCP/IP devices available)
 -s SERIAL  use device with given serial (overrides $ANDROID_SERIAL)
 -t ID      use device with given transport id
 -H         name of adb server host [default=localhost]
 -P         port of adb server [default=5037]
 -L SOCKET  listen on given socket for adb server [default=tcp:localhost:5037]

general commands:
 devices [-l]             list connected devices (-l for long output)
 help                     show this help message
 version                  show version num
、、、 、、、
、、、 、、、

配置python环境

安装python3(系统一般自带python2.7,需python3.x 的需自行下载安装)

下载站点:https://www.python.org/, 下一步安装,python一般会自动配置环境变量,在命令行输入python3 查看是否成功

Mac-mini:~ NiHao$ python3
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
配置 python 依赖的包
# 命令行输入
sudo pip install Appium-Python-Client

安装 brew 和 carthage

brew 为 mac的一个包管理工具,类似 python 的 pip
brew 安装要用到 ruby 命令

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

brew -v 查看安装是否成功

Mac-mini:~ NiHao$ brew -v
Homebrew 2.1.6
Homebrew/homebrew-core (git revision a443; last commit 2019-06-19)

附卸载 brew 的指令

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

安装 carthage,为防止有时 appium 启动报错

brew install carthage

安装appium

有命令行和GUI包两种安装,建议下载dmg安装包手动安装
1.官网下载dmg包直接双击下一步安装(推荐),地址:http://appium.io/
2.cnpm安装(无图形界面,也可npm安装)

cnpm install -g appium

命令行安装的,要启动时在命令行直接输入 appium

安装appium-doctor

1、可以 cnpm 安装,但测试输入 appium-doctor 时报错,我用的时第二条成功

cnpm install appium-doctor

2、直接使用 npm 安装,测试可成功运行

sudo npm install -g appium-doctor

查看版本看暗转是否成功

appium-doctor --version

确定所有依赖是否安装成功,可通过命令行输入 appium-doctor 测试 appium 所需环境是否完整
绿色对勾为正常,有红色 x 需要重新调整

appium-doctor

至此,出现如图绿色对勾,表明环境搭建已基本完成


image.png

该命令可直接查看连接 iOS 设备所需依赖是否完整

appium-doctor --ios

安装Xcode、pycharm

Xcode 必须要装,pycharm 根据个人需要

=====可能出现的错误以及解决方法=====

报错:

appium-doctor 检测appium环境 如果 Xcode 报错时

WARN AppiumDoctor ✖ Xcode is NOT installed!

在已安装 Xcode 的情况下,检测未安装
原因:Xcode的安装路径和appium所检测的路径不同
解决办法:修改当前Xcode的安装路径,输入如下命令:
首先查看自己Xcode安装路径

xcode-select -p
# 查询安装路径结果如下:
/Library/Developer/CommandLineTools

将Xcode的安装路径改为:/Applications/Xcode.app/Contents/Developer
命令如下

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

再次输入 appium-doctor 检测

报错解除!

又一个报错!

WARN AppiumDoctor  ✖ opencv4nodejs cannot be found.

解决方法:看别人大佬的
http://www.mamicode.com/info-detail-2633199.html

安装连接真机所需的依赖

连接真机需要安装依赖包 libimobiledevice、ios-deploy,使用 brew 工具安装所需依赖

# 安装 libimobiledevice(真机测试需要)
brew install libimobiledevice
# 安装 ios-deploy(真机测试需要)
brew install ios-deploy

Mac 连接 iOS 真机

1、连接真机手机端需安装 WebDriverAgent,需要用 Xcode 构建工程并安装到手机,WebDriverAgent 已在appium的安装目录下,进入如下目录,或查看自己实际安装的目录

cd  /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

2、在当前目录下执行脚本,安装过程中有时会因 npm 问题报错,可尝试重新执行

sh ./Scripts/bootstrap.sh

3、完成后在该目录下找到如图目录,双击该目录会默认使用Xcode打开

image.png

学习几位老哥:
https://www.cnblogs.com/meitian/p/7360097.html
https://www.cnblogs.com/meitian/p/7359787.html
https://www.jianshu.com/p/5a7763973132
手机端安装好 WebDriverAgent 就可以愉快的连接 iOS手机进行操作了 (iOS 版本太新 Appium 可能会不支持)
启动下 Safari 浏览器

from appium import webdriver
    
cap = {
       "automationName": "XCUITest",
       "platformName": "ios",
       "platformVersion": "12.2",
       "deviceName": "iPhone 6",
       "browserName": "Safari",
       "udid": "填写自己手机的 udid ",
       }
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", cap)
driver.get("https://m.baidu.com")

udid 获取方法,iOS 根据提示获取,简单:http://www.pgyer.com/udid/

连接模拟器进行测试:

参考:https://www.cnblogs.com/yoyoketang/p/7571754.html
连接模拟器时会自动安装 WebDriverAgent
在真机上是安装.ipa的包,在模拟器上是安装.app的包。
这是两种不同的打包方法,也就是说从appstore这种渠道下载的.ipa是无法安装到模拟器上的,必须要找你们开发专门针对iOS模拟器打个模拟器的包,后缀是.app
此处有一个供练习使用的app包,appium 官方的的包,可以下载:https://github.com/appium/appium
TestApp.app 的包在如下路径中

appium-master/sample-code/apps/TestApp.app

可在命令行中进行安装此app

xcrun simctl uninstall booted TestApp.app   

也可将该 app 文件直接鼠标拖动到模拟器中进行安装
安装完成后可用如下进行启动 app

from appium import webdriver
    
cap = {
            "automationName": "XCUITest",
            "platformName": "ios",
            "platformVersion": "12.2",
            "deviceName": "iPhone 6",
            "app": "/Users/zhng/Desktop/appium-master/sample-code/apps/TestApp.app"      # .app 文件的路径
       }
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", cap)
    
driver.find_element_by_id('IntegerA').send_keys('你好1 TestApp!') 

image.png

如下有报错但不影响基本功能,可后续调整
image.png

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容