mac下安装appium
1、安装homebrew
参考:https://zhuanlan.zhihu.com/p/111014448
自动脚本(全部国内地址)(在Mac os终端中复制粘贴回车下面脚本)
下面展示一些 内联代码片
。
安装脚本:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
安装成功,输入brew -v
2、安装Android SDK http://tools.android-studio.org/index.php/sdk
先cd到android-sdk-macosx文件夹下:
再输入命令:
tools/android update sdk --no-ui
然后会提示几个“Do you accept the license ‘android-sdk-license-2742d1c5’” 选择“y”
接着会下载android的SDK,如下:
3、安装Android studio://www.androiddevtools.cn/#
4、安装appium
先安装node,> brew install node # get node.js 或者直接安装:Node.js官网下载:https://nodejs.org/zh-cn/download/(直接安装的node中直接包含了npm,且路径正确,不存在关联错误的情况)
检查node是否安装,node -v
然后安装appium server
npm install -g appium
安装appium client
npm install wd
安装appium-doctor
npm install -g appium-doctor
安装carthage
brew install carthage
安装appium-desktop
https://github.com/appium/appium-desktop/releases
=========下载安装appium desktop=
http://www.pc6.com/mac/585436.html
在这里插入图片描述
5、安装adb
brew cask install android-platform-tools
解决启动appium 提示端口被占用问题
解决方法:在终端输入命令:killall -9 node
使用appium
通过USB连接anodrid测试机,使用 adb devices,查看电脑连接的手机型号
adb kill-server 杀掉所有adb进程
lsof -i:5037 查找5037端口号被占用的进程PID
kill -s 9 81836 杀掉进程PID=81836
https://ke.qq.com/course/271076?taid=1923569823261412
连接上USB充电线,Android手机打开开发者模式,USB调试
查询电脑连接的设备:adb devices
查询APP入口,用于自动化测试时启动该APP:adb logcat |grep -i activitymanager.*Displayed (aapt dump badging mobile.apk | grep launchable-activity)
Android手机上启动APP,电脑上输入: adb logcat | grep START
查找当前启动APP的包名和activity名,
可以知晓包名 appPackage=com.mcsoft.xxx
APP入口界面 activity=.main.MainActivity
napt dump badging
如果有多个设备,那么需要填写多个deviceName,配置完成Capability
录制脚本
点击show/hide Boilerplate Code,生成完整的代码
添加到IDEA-JAVA工程中
https://github.com/appium/java-client
查询java-client相关依赖加入到工程maven依赖中
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>5.0.0-BETA9</version>
<scope>compile</scope>
</dependency>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
元素定位:id xpath class,没有xpath定位不到的方法,任何元素有可以用xpath定位
自动抓取的xpath是绝对路径,比较长,自己写的xpath用相对定位,没有这么长,xpath比ID定位更精准,但是速度稍慢些,有ID优先使用ID,没有ID或者ID重复使用Xpath定位
//表示当前页面所有元素,xpath=//[@resource-id=’’]
//【@text=‘抢购’】
要找ID的话需要用inspect工具或者uiautimator,findByName已经被废弃掉了
driver.findElementsByXpath("//");打印出所有元素
driver.getPageSourece();打印出页面所有控件
selenium grid模式、stf多设备管理平台(http://github.com/openstf/stf)用来管理手机设备,研发可以用这个平台来连到你的机器上测试
手势操作: