Mac os 环境下搭建python+appium环境
一、 Python的安装与环境配置
前往https://www.python.org下载安装最新版本python,安装成功后可在终端输入:python -- version 查看版本是否为安装的版本,若不是则需要前往配置环境变量
- 配置环境变量
1)打开Mac自带终端Terminal; 2)进入当前用户主目录,cd ~;(默认用户目录则不需要) 3)临时授权,sudo su; 4)输入系统密码(加锁密码不显示输入); 5)创建.bash_profile文件,touch .bash_profile(如果存在则不必新建,可直接第六步验证后再选择是否执行此步); 6)编辑.bash_profile文件,vim .bash_profile; 7)输入Python安装的路径环境变量命令,保存并退出:
****
****
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH
alias python="/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9"
8)配置完成后在终端输入source .bash_profile来更新配置的环境变量 9)再次输入python – version 查看是否为安装版本 踩坑:~/.bash_profile 配置的环境变量,重启终端后失效问题 解决方案: 需要重新执行 : $source ~/.bash_profile 或者永久解决: 在~/.zshrc文件最后,增加一行source ~/.bash_profile 如果没有 .zshrc 文件, 在相应目录下 执行 touch .zshrc 创建文件,添加 source ~/.bash_profile
二、node和npm安装
访问nodejs官网,点击蓝色选框区域稳定版,并下载https://nodejs.org/en
下载后傻瓜式下一步安装就行了,安装完成后打开终端,输入npm -v node -v两个命令,如下图出现版本信息,说明安装成功
三、安装Homebrew
/bin/zsh -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”
该地址提供多个国内源地址,选择一个安装即可,我选择了中科大,如图下图:
查检安装结果: brew -v
如果能正确打印版本信息,则安装成功!
四、appium安装
1.下载 dmg 包手动安装
官方下载地址:http://appium.io/ 下载后傻瓜式下一步安装就行了 踩坑:无法打开appium,报错提示无法打开“appium”,因为Apple无法检查其是否包含恶意软件 原因:系统升级至了macOS 10 15及以上 解决方法:在终端输入 sudo xattr -rd com.apple.quarantine /Applications/Appium.app (应用名称)
2.安装appium-doctor
npm install -g appium-doctor 在终端执行appium-doctor --ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有那一项是打叉的,则进行安装就可以了。
踩坑:在安装依赖过程中其余的都可以按照解决方案正常安装,只有在安装opencv4node.js的过程中一直报错,找了很多解决方案都无法解决,最后是由于安装的node.js版本过高,手动降低了当前版本才正常将该依赖安装。 解决方案: npm install -g n sudo n 14.17.3(降级版本)
踩坑:安装opencv4node.js命令中已输入sudo还是报权限有问题 解决方案:在后面加上-- unsafe-perm
踩坑:克隆项目时出现报错:SSL_ERROR_SYSCALL in connection to github.com:443 解决方案:分别输入以下命令即可 git config --global --unset http.proxy git config --global --unset https.proxy
踩坑:安装opencv4node.js时出现报错:This is probably not a problem with npm. There is likely additional logging output above. 解决方案:先sudo su 进入超管权限,再输入命令npm i -g opencv4nodejs --ignore-scripts即可正常安装
五、WebDriverAgent的下载配置
- 网上都推荐先下载WebDriverAgent:git clone https://github.com/facebook/WebDriverAgent.git,在下面一系列配置完成后将appium自带的WebDriverAgent替换成自行下载并配置完的。但是在我配置完成后,替换WebDriverAgent,使用appium连接真机一直会报错,报错详情见"六、运行Appium-Desktop 下的踩坑",因此个人建议可以直接对appium自带的WebDriverAgent进行修改配置,配置方法相同。(appium自带的WebDriverAgent路径大同小异,本人的路径在:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/webdriveragent 仅供参考)
- 进入下载后的WebDriverAgent文件
- 执行 ./Scripts/bootstrap.sh
- 直接用Xcode打开WebDriverAgent.xcodepro文件
- 配置WebDriverAgentLib和WebDriverAgentRunner的证书
- 双击该文件,用(默认)Xcode打开,找到如下图所在的三处:
解释如下: 1、把这个勾勾上 2、选择一个AppleID(需要开发者账号) 3、这里默认的是com.facebook.WebDriverAgentLib。BundleID,这是唯一标识符,一定不能和其他人的相同。所以一定要修改,可将facebook修改成任意其他字符。
除了上图1处的bundleid需要修改外,左侧列表中还有多处文件的bundleid需要和这里保持一致,需要手动去进行修改。例:
6.配置完成后在菜单栏选择目标设备
7.Scheme选择WebDriverAgentRunner
-
最后运行 Product -> Test,一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,之前没信任过证书的需要先去设置中将证书信任一下,再Test一次即可。 -
运行成功时,在Xcode控制台可以打印出一个Ip地址和端口 -
在网址上输入http://(iP地址):(端口号)/status,如果网页显示了一些json格式的数据,说明运行成功。
11.如果是自行下载了WebDriverAgent,则需将appium自带的WebDriverAgent替换成下载配置完成的。如果直接修改appium自带的WebDriverAgent则无需替换,可以直接使用Appium-Desktop进行连接
踩坑:Build后报错‘WebDriverAgent.xcodeproj Building for iOS, but the embedded framework ‘YYCache.framework’ was built for iOS + iOS Simulator’ 解决方案1:Xcode中, File > Project Settings, 修改Build System 为如下配置:
解决方案2:通过修改项目配置里面的Validate Workspace为Yes解决
踩坑:Build后报错‘Double-quoted include “HTTPResponse.h” in framework header, expected angle-bracketed instead’ 解决方案:选中WebDriverAgent进入到 Build Settings ,然后找到 Quoted Include In Framework Header,然后选 No
踩坑:Build后报错’assign’ property of object type may become a dangling reference; consider using 'unsafe_unretained’ 解决方案:在报错处将“assign”改为“strong”
踩坑:build后显示成功,但是查看控制台信息存在报错 WebDriverAgentRunner-Runner[1849:82950] -[UITestingUITests internalImplementation]: unrecognized selector sent to instance 0x283250c30 解决方案: 修改 WebDriverAgentLib/Utilities/FBFailureProofTestCase.m 第26行 self.internalImplementation = (_XCTestCaseImplementation *)[FBXCTestCaseImplementationFailureHoldingProxy proxyWithXCTestCaseImplementation:self.internalImplementation];
修改后: if ([self respondsToSelector:@selector(internalImplementation)]) { // The internalImplementation API has been removed since Xcode 11.4 self.internalImplementation = (_XCTestCaseImplementation *)[FBXCTestCaseImplementationFailureHoldingProxy proxyWithXCTestCaseImplementation:self.internalImplementation]; } else { self.shouldHaltWhenReceivesControl = NO; }
六、运行Appium-Desktop
1.运行Appium-Desktop 2.开启start server 3.点击start new session 4.在 Desired Capabilities 中输入相关的参数后点击Start Session
5.运行成功后,会弹出一个控制界面,在该界面中可以控制手机上正在运行的程序
踩坑:运行报错error:‘bundleId’ desired capability not provided。failure: xcodebuild failed with code 65 xcodebuild 使用了网上多种方法均不能有效解决 解决方案:重新安装appium,直接前往appium路径下修改自带的WebDriverAgent文件。appium自带的WebDriverAgent路径大同小异,本人的路径在Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/webdriveragent 仅供参考)
|