iOS真机自动化(appium)-小白版

我的安装使用环境:


安装:

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

  • node
    brew install node
    node -v

  • libimobiledevices
    brew install libimobiledevices --HEAD

  • carthage
    brew install carthage

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

  • wd
    npm install wd

  • ios-deploy
    cnpm install -g ios-deploy

  • ideviceinstaller
    brew install ideviceinstaller
    为什么?不知道,看名字就知道是真机需要安装的 just installed

  • appium
    cnpm install -g appium
    appium -v

  • appium-desktop
    官网选择下载,(基于appium1.7版)

    安装完成后,拖到application中

  • xcpretty
    gem install xcpretty
    报错:
    ERROR: While executing gem … (Gem::FilePermissionError) You don’t have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
    解决:
    sudo chmod 777 /Library/Ruby/Gems/2.0.0 修改权限

  • appium-xcuitest-driver
    原因:appium 默认安装的appium-xcuitest-driver版本有点老,貌似是 2.4.0的版本,老的版本问题就是奇怪;
    安装方法:
    cd /usr/local/lib/node_modules/appium
    npm uninstall appium-xcuitest-driver 先卸载
    npm install appium-xcuitest-driver@2.5.3 重新安装 2.5.3

【注意:以上安装不要在root用户下安装。若出现权限问题, sudo chmod 777 将文件权限更改下。

  • 安装 appium-xcuitest-driver 依赖
    进入这个文件下的weddriveragent 文件下 将project 用xode 进行编译
    详情见下步

WebDriverAgent 真机代理编译过程:

appium操控真机需要代理 这个代理就是webDriverAgent(wda),而刚接触这方面的同学(我)可能会一头雾水简单来说 就是,需要将你所使用的appium文件下的wda这个项目通过xcode编译到手机上,是以小app的形式存在在手机上的。比如 你使用的是服务器版的appium(A) 那你就到这个A文件路径下 编译它的wda到真机,你使用的是appium-destop版(B)的话,就将B文件路径下的wda编译到真机上边;

编译的详细步骤如下:参考链接:
http://www.cnblogs.com/baconLiu/p/6861431.html

注意事项:

_1: 版本问题:
真机测试时,手机的ios版本,电脑上xcode版本,和mac系统版本都需要兼容,比如 我的手机系统是ios11.0的,那么我的xcode中的sdk得存在11.0的版本,最好是将你们ios团队的所有sdk都拷过来,但是我全拷过来之后,xcode编译真机时填写上边链接中的配置时依然提示sdk not support 的错误,最后直接升级(直接从应用商店里边下载),从xcode8升级至xcode9 发现支持了ios 11;

_2: 账户证书问题:
编译代理配置文件时,,你的xcode的账户得是你的项目开发团队中的账号,包名啥的都用该项目的,下载项目组证书到手机上、xcode上进行认证(这步可以直接让开发帮你做);

_3: appium总是会将wda卸载掉,然后出现安装wda失败的问题,重新编译下wda,重启手机再次运行;

_4: 苹果 的限制比较多,必须按照他们的要求走;

_5: wda这个小app 怎么说呢,使用时发现是唯一性的,一个项目只认一个wad,而且还不能同时存在,使用场景就比如:

  • 我需要用appium-destop去启动真机,这时…需要编译安装appium-destop文件下的wda…

  • 我又想用本地服务器版的appium(就是命令行启动的),这时…appium他会卸载掉上面的wda…再重新安装…然后当然安装失败呀…怎么办,重新到appium文件下编译。

  • 我需要用macaca的 app-inspector 去定位查看真机元素,,和上边的套路一样,编译安装。

注: 以上准备工作,具体问题请具体分析 (・ิϖ・ิ)っ


appium-desktop的使用:

具体说明可以上官网翻译查看,客户端的比较容易操作;
http://www.jianshu.com/p/e95fac0c0851 这是比较详细的使用指南链接


查看真机元素:

方法有多种,网上第三方的也都在渐渐完善;
我推荐两种
_1: appium-desktop 自带的,使用方法可以参考上边那个链接,很方便;

_2: app-inspector
安装: 参考教程 https://testerhome.com/topics/7202
启动: app-inspector -u 设备UID —verbose


Python启动文件:

启动配置文件 :

desired_caps = {}
desired_caps['unicodeKeyboard'] = 'True'
desired_caps['resetKeyboard'] = 'True'
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '11.0'
desired_caps['automationName'] = 'XCUITest'
desired_caps['deviceName'] = 'kgciPhone'
desired_caps['bundleID'] = 'cn.bdqn.courseworks'
desired_caps['udid'] = '08de43bcfde98ef025697cbf3a06d1958ac02b71'
desired_caps['noReset'] = 'true'
desired_caps['app'] = PATH("/Users/mactest/Library/Developer/Xcode/DerivedData/CourseWorks-dheyrtmplwckbqcgzgrzyaojbpzc/Build/Products/Debug-iphoneos/CourseWorks.app")

注意:上边忘了说了,测试app需要编译为 .app 后缀的文件;
我目前用的是xcode编译的,教程链接 http://www.cocoachina.com/bbs/read.php?tid=141351,在项目目录下回出现一个.app后缀的文件,右键查看简介,复制出他的路径;


一些现在使用的元素操作方式:

  • inspector上的:

value = name
Type = class_name

  • xpath 定位

  • 新版本Appium的滑动方法

driver.execute_script("mobile: scroll", {"direction": "down", element: element.getAttribute(“id")})
diretion = up | down | left | right
#标准指向滑动
driver.execute_script("mobile: scroll",[{"direction":direction}])
#基于控件的指向滑动
driver.execute_script("mobile: scroll", [{"direction":direction, element: element.id }])

备注: 元素操作在我实际使用中发现很多安卓支持的,ios都不是太支持,但是源码中又存在,疑惑,怀疑是selenium版本或者python版本
的问题,有时间得研究下这个问题


备注:
xcode 和 ios升级后问题总汇论坛链接:
https://testerhome.com/topics/5954

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值