|
这篇文章主要是记录自己在工作中遇到的问题,以备日后遇到同类问题后能够快速解决。也希望这篇
文章能对一些技术小白有一些帮助。讲解如有不当之处还请指出,共同进步,在此感谢。
因国内不是太好下载appium,首先附上appium的网盘下载链接:
Appium下载链接,密码: e7dr
我们在工作中有时会与环境变量打交道,什么Android环境变量,JAVA环境变量,对于小白来说,真
的挺头疼得。网上更多的是关于Windows的配置方法,对于Mac的配置方法比较少,有的一些也似
乎有时解决不了问题。
这里所提到的环境变量的配置方法是在我在安装Appium时遇到的问题,一个是“Android-HOME no
t set”,另一个是“JAVA-HOME not set”。我们在安装Appium时可能会有很多问题问题,但是有些问
题都是因为这两个环境变量没有配置导致的,所以只要将这两个问题解决,一连带几个问题都不存
在,问题如截图:
如图,有5个报错,但是有4个问题都是Android的环境变量问题,还有一个是JAVA环境变量问题
我们在运行Appium 的时候是需要多个文件支持的,比如JAVA环境和Android环境。如果Appium找
不到这些环境,就会报错。所以我们需要配置这些环境变量。
首先打开终端,输入命令:open .bash_profile或者vim ~/.bash_profile(在此之前你必须已经创
建了这样一个.bash_profile文件,如果没有,请创建:touch .bash_profile).
使用这两个命令都可以直接进入profile文件:
使用open .bash_profile金可以直接进行编辑,编辑完以后command+s进行保存即可;
使用vim ~/.bash_profile则不能直接编辑,此时点按字母“i”进入编辑模式,然后就可以对文本进行
编辑,编辑完以后,点按“esc”键,即可退出编辑模式,然后输入“:wq”即可保存退出文本。如果
你不太会使用Vim文本编辑器,可以在终端输入
vimtutor
查看Vim自带教程。
当我们进入到文本编辑器以后,就可以配置Android和JAVA环境变量了,前提是你已经安装了Andr
oid和Java的开发环境。可能每个人的环境变量不一样,一般你没有自己改变其位置,这些变量位
置是一样的,如图:
该图中的最后两行就是我配置的两个环境变量,如果你没有修改其位置,就可以复制使用了,为
了方便大家复制(因为我觉得这里没必要手写),给出文本(其中guxuecheng是我的用户名,换
成你自己的即可):
export ANDROID_HOME=/Users/guxuecheng/Library/Android/sdk
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
。这里说了,是在安装Appium时缺少环境变量的问题,但是我们在安装Appium时一般还会遇到
其他问题,这里我把我遇到的问题一并列出,并给出解决方法:
错误一、[Error:Couldnot detect MacOS XVersion from sw_vers output:'10.12.4']
如图:
截图中给出的是10.12,但是实际中遇到的一般是10.12.4.
这个问题比较麻烦,解决起来还是比较麻烦的。我会列出详细步骤,一定照做,不要输错,否则
很麻烦:
第一步,输入命令:vim/Applications/Appium.app//Contents/Resources/node_modules/appium/n
ode_modules/appium-support/build/lib/system.js
做如下修改:
找到下面几行代码:
case 10:
_arr = ['10.8', '10.9', '10.10', '10.11'];
_i = 0;
改为:
case 10:
_arr = ['10.8', '10.9', '10.10', '10.11','10.12'];
_i = 0;
第二步,输入一下命令:vim/Applications/Appium.app//Contents/Resources/node_modules/ap
pium/node_modules/appium-support/lib/system.js
做如下修改(这里需要修改两处):
修改一:
找到如下代码:
try {
stdout = (await exec('sw_vers', ['-productVersion'])).stdout;
}
改为:
try {
stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim();
}
修改二:
找到如下代码:
for (let v of ['10.8', '10.9', '10.10', '10.11']) {
if (stdout.indexOf(v) === 0) { return v; }
}
改为:
for (let v of ['10.8', '10.9', '10.10', '10.11','10.12']) {
if (stdout.indexOf(v) === 0) { return v; }
}
第三步:输入以下命令:vim/Applications/Appium.app//Contents/Resources/node_modules/appium-s
upport/build/lib/system.js
找到如下代码:
case 10:
_arr = ['10.8', '10.9', '10.10', '10.11'];
_i = 0;
修改为:
case 10:
_arr = ['10.8', '10.9', '10.10', '10.11','10.12'];
_i = 0;
第四步:输入以下命令:
vim/Applications/Appium.app//Contents/Resources/node_modules/appium-support/lib/system.js
这里需要做两处修改
第一处:
找到如下代码:
try {
stdout = (await exec('sw_vers', ['-productVersion'])).stdout;
}
改为:
try {
stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim();
}
第二处:
找到如下代码:
for (let v of ['10.8', '10.9', '10.10', '10.11']) {
if (stdout.indexOf(v) === 0) { return v; }
}
改为:
for (let v of ['10.8', '10.9', '10.10', '10.11','10.12']) {
if (stdout.indexOf(v) === 0) { return v; }
}
错误一解决办法出处:https://stackoverflow.com/questi ... -error-could-not-de
tect-mac-os-x-version-from-sw-vers-output-10-12。
错误二、Cannot read property ‘replace’ of undefined
错误如图:
这个问题解决方法应该是最为简单的,就是因为你没有安装node.js.把这个安装上就好了。。安装好
之后可以在终端输入:node -v。查看node安装成功与否,如果返回了node的版本,则说明安装成功。
解决所有问题以后再次点击下图1处:
如果出现下图2处的信息,说明安装Appium成功,可以进行接下来的学习了:
错误三:Carthage was NOT found!
这个原因是因为缺少Carthage(这是个啥东西?自己Google吧),解决办法就是装上他:
brew update
brew install update
补充:
一、环境变量PATH的语法解释:
${}为占位符,${PATH} 和 $PATH等效
=前后不能有空格
: 为分隔符(等同于windows环境变量中的 ; )
PATH=$PATH:xxx 可以理解为 " PATH+=xxx "(当然不能这么写)
PATH=xxxPATH这种写法亦可,只是前后顺序的问题;
二、bash 和 zsh
linux 和 unix 两个操作系统默认的 shell 都是 bash,所以我在文章开始配置环境变量也是用的 bash,
这样我也用了很长一段时间,直到
今天我发现我的 adb 命令居然都用不了了,检查了一下环境变量也没错,无奈请教了一下公司大牛,
原来是因为我的环境变量都使用了 .zshrc文件 ,原来的 .bash_profile配置文件就不起作用了。为什么
会这样呢?原来是因为之前我一个同事在我电脑上把我的bash 环境变量切换到了 zsh。好吧,zsh 说
是比 bash 更强大,那我就用 zsh 吧。
查看当前电脑使用的是哪一个 shell,使用命令:
echo $SHELL
命令echo 的作用是:输出指定的字符串或者变量,这里就是输出变量 shell 的值, 一定要是大写,且
要以$开头。还有类似的命令比如 echo $PATH,该命令的作用就是显示当前path环境变量。
|
|