第一次 mac 上安装 appium 做一下笔记,记录下遇到的问题及解决方法,网上大把的教程,这里也是参考各位大神进行整理的笔记,如记录有误,也请多多指教!
-
要用到的软件
个人感觉 Mac 系统中安装 appium 稍微比win较麻烦nodejs JAVA jdk android sdk appium Python # 个人使用python3 pycharm
-
安装 node
下载地址:https://nodejs.org/zh-cn/
直接双击下一步进行安装,安装完成后命令行输入命令查看安装是否成功# 查看安装是否成功 node -v # 查看npm安装是否成功 npm -v
-
安装cnpm
npm有时会因网络问题下载报错,所以用淘宝的 cnpm 替代,本人在使用中安装软件有时会报错,不一定能正常使用;安装:依然先使用 npm 进行安装 cnpm,命令行命令如下:npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm -v # 查看cnpm版本号,是否安装成功
-
配置java jdk环境变量 、 android sdk环境变量
1、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)
2、android sdk 环境变量
下载站点:https://www.androiddevtools.cn/#
将压缩便解压到自己的目录下,打开编辑变量文件,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 检测是否成功 > adb
-
配置python环境
1、安装python3(系统一般自带python2.7,需python3 的需自行下载安装)
下载站点:https://www.python.org/ 下一步安装,python一般会自动配置环境变量,在命令行输入
python3 查看是否成功
2、 配置 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 查看安装是否成功
附卸载 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 -v
确定所有依赖是否安装成功,可通过命令行输入 appium-doctor 测试 appium 所需环境是否完整
绿色对勾为正常,有红色 x 需要重新调整appium-doctor
至此,出现如图绿色对勾,表明环境搭建已基本完成
该命令可直接查看连接 iOS 设备所需依赖是否完整
appium-doctor --ios
-
安装Xcode、pycharm
Xcode 必须要装,pycharm 根据个人需要=可能出现的错误以及解决方法=
报错: appium-doctor 检测appium环境 如果 Xcode 报错时WARN AppiumDoctor ✖ Xcode is NOT installed!
在已安装 Xcode 的情况下,检测未安装
原因:Xcode的安装路径和appium所检测的路径不同
解决办法:输入如下命令:xcode-select -p
查看目前自己的Xcode安装路径,查询结果:
/Library/Developer/CommandLineTools
将Xcode的安装路径改为:/Applications/Xcode.app/Contents/Developer
输入命令修改 Xcode 安装路径: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打开
学习几位老哥:
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 可能会不支持)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!')
如下有报错但不影响基本功能,可后续调整