Appuim环境搭建for Mac

一、Appium环境搭建

   1.安装Appium

  通过下载dmg安装:

  官方下载: http://appium.io/

  国内下载: http://pan.baidu.com/s/1jGvAISu (推荐)

  2.下载Android SDK,链接  http://down.tech.sina.com.cn/page/45703.html

  3.安装Xcode,下载地址: https://developer.apple.com/downloads/   --iOS 

  4.使用GUI工具安装Appium(AppiumUI程序),下载地址: http://appium.io/    注:由于官网下载总是不成功,共享一个百度云盘下载地址: http://pan.baidu.com/s/1qYsvHpU

  5.命令行安装

使用Homebrew来安装Carthage

http://www.jianshu.com/p/bf263c596538

1>安装Homebrew  地址https://brew.sh/

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

2>安装brew,地址https://brew.sh/index.html  命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

3>安装完homebrew,安装carthage

执行下面命令

$ brew update
$ brew install carthage
4>#安装nodejs

brew install node

安装brew完成,需要输入brew help激活使用

brew list           列出已安装的软件

brew update     更新brew

brew home       用浏览器打开brew的官方网站

brew info         显示软件信息

brew deps        显示包依赖

brew search node

先 node -v

看看是否安装

rpm -qa | grep node

brew list node

#安装appium

npm install -g appium     此命令安装比较慢,注意与taobao镜像安装后的命令不同

#安装python client

pip3 install Appium-Python-Client

注: 

如果遇到网络问题导致npm安装appium失败的情况,可以尝试使用淘宝的镜像

安装Appium或者用

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

$ npm view appium versions #查看appium所有的版本号

使用淘宝镜像后,安装命令对应的变成:

cnpm install -g appium

注:

测试IOS10系统请严格按照XCUITest-Driver文档配置。 

6.PS.诊断(保留,我用的是在appium中,点击Doctor方法来查看) 

#安装appium诊断工具

sudo npm install -g appium-doctor
安装完成,使用appium诊断: 

命令:appium-doctor

可以看到环境目录

诊断通过后,如下图所示:

 
7.在Appium中点击Doctor图标,出现如下提示

 
如图上图,ANDROID_HOME,JAVA_HOME未设置
 

 设置环境变量

/Users/qa

lishandeMacBook-Pro:~ qa$ vim ~/.bash_profile    1编辑模式

lishandeMacBook-Pro:~ qa$ source ~/.bash_profile    2重新加载配置文件

lishandeMacBook-Pro:~ qa$ cat ~/.bash_profile    3查看配置文件

例子中sdk目录为:/Users/zhaoye/work/android/sdk , jdk目录为:/Library/Java/JavaVirtualMachines/jdk1.7.0_76.jdk/Contents/Home

在第1步,按i进入编辑模式插入下列内容

我的SDK目录为:/Users/qa/Library/Android/sdk(查看方法:在AndroidStudio-Preference-System Setting-Android SDK查看sdk目录)

或者

.bash_profile 插入内容如下

#Android home
export ANDROID_HOME=/Users/qa/Library/Android/sdk
#Android path
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools

#Java home

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

#Java bin path

export PATH=$PATH:$JAVA_HOME/bin

按ESC退出编辑模式

输入 :wq 保存退出

搭建环境过程,误把alias写lisa。找了半天原因。。。

8.按步骤123执行完后,再次点击Appium的Doctor按钮,出现如下界面,证明成功

9.在手机端安装美团app,安装后,手机连接电脑。在终端输入adb命令

adb在配置环境变量的时候已经配置了,可以去目录下查看是否有adb

cd /Users/qa/Library/Android/sdk/platform-tools/

刷新配置文件source ~/.bash_profile

adb devices  显示当前运行的全部模拟器

adb shell 进入adb的shell模式

pm list package 查看已安装的包,显示所有已经安装的包名

可以grep一下,pm list package |grep "meituan"

adb logcat -s ActivityManager -s是过滤(silent)ActivityManager是将此加入到白名单,查看日志前提是本地得安装app

IOWE代表日志类型,后面是系统日志关键字,(1074)是pid进程号,然后是包名,后面是首页启动项

10.也可以直接问RD

再次点击安卓小人标识,上面的窗口隐藏,点击launch再点击inspector

iOS用Appium Inspector比较好。Android用uiautomatorviewer 比较好

 

11.在终端输入uiautomatorviewer ,直接启动界面

注意:有时,点击小人安卓报错,需要多试几次。再不行就在终端重新启动uiautomatorviewer

此时在手机上点击进入美团某个页面,再次点击左上角红框的标识,模拟器里的页面显示与手机上一致。点击某个元素,查看右侧,显示位置。获取元素位置,写入代码里

12.下载安装pycharm,写入如下代码

# -*- coding:utf-8 -*-

from appium import webdriver



hub = 'http://localhost:4723/wd/hub'



caps = {}

caps['platformName'] = 'android'

caps['udid'] = '2e9d9961'

caps['deviceName'] = 'android_1'

# caps['automationName'] = 'XCUITest'

caps['newCommandTimeout'] = 30000

# caps['bundleId'] = 'com.meituan.imeituan'

caps['appPackage'] = 'com.sankuai.meituan'

caps['appActivity'] = '.activity.Welcome'

# caps['appActivity'] = '.city.BaseCityActivity'

# caps['app'] = '/Users/lilei/PycharmProjects/appiumtest/aimeituan-5658.apk'



wd = webdriver.Remote(hub, caps)

wd.find_element_by_android_uiautomator(u'new UiSelector().text("北京")').click()

代码里udid获取需要在终端输入adb devices,查看

启动appium服务,执行程序,才不会报错

坑:再次运行代码,失败

提示org.openqa.selenium.SessionNotCreatedException: A new session could not be created. Details: Problem getting session data for driver type IosDriver; does it implement 'get driverData'? (WARNING: The server did not provide any stacktrace information)
或者Problem getting session data for driver type AndroidDriver; does it implement 'get driverData

解决办法:
命令行启动,则添加--session-override:
appium -p 4723 --session-override

参考http://blog.csdn.net/a19891024/article/details/53932237

搭完了才发现这个教程不错

http://www.infoshare.cc/2016/09/29/appium%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE-mac.html

猜你喜欢

转载自blog.csdn.net/weixin_42498050/article/details/81068739