经过两天的研究Appium Desktop从入门到放弃,无奈最后选择用Macaca App Inspector也是各种坑
安装所需依赖库
1.node (brew install node)
2.npm (brew install npm)
3.carthage (brew install carthage)
4.libimobiledevice(真机测试需要)(brew install libimobiledevice)
5.ios-deploy(真机测试需要)(brew install ios-deploy)
判断所有依赖是否安装成功,可通过appium-doctor验证,首先安装appium-doctor(npm install -g appium-doctor),然后在终端运行appium-doctor,如图下图所示,都是打钩状态就证明环境正常(java相关环境不需要配置)
一、Appium Desktop(mac桌面版本)
下载安装桌面版本 网上找了两个版本 Appium Desktop下载1 Appium Desktop下载2
下载安装好之后先不要启动
Appium自带的WebDriverAgent存在bug,改使用FaceBook的WebDriverAgent WebDriverAgent下载
从git上下载WebDriverAgent,进入/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 目录(注意:不同版本的Appium路径是不一样的,我安装的版本的路径是下图),命令行运行:./Scripts/bootstrap.sh,下载依赖,然后将该文件替换appium应用中的WebDriverAgent(目录:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent )
路径查找 :访达->应用程序->appium右键显示包内容
使用xcode打开WebDriverAgent程序,在真机上安装WebDriverAgent程序,手机上出现WebDriverAgent应用表示安装成功
这里也有坑:
把WebDriverAgentLib和WebDriverAgentRunner的bundleIdentifier修改不能和FaceBook的一样 唯一就行
下面的地方也要修改一下
此时com+u编译可能会抱下面的错误 如果不报错略过
把下图位置的修饰符改成strong即可
编译之后会 手机上出现WebDriverAgent应用表示安装成功
启动Appium Desktop
platformName:设备类型名称 iOS或安卓
deviceName:手机设备
bundleId:项目的bundleIdentifier
udid:手机udid
xcodeOrgId:开发者账号的teamid
xcodeSigningId:赋值"iPhone Developer"即可
到这里点击start seeion 我这边报错 一直未解决(如果有人知道原因望指点一二,不胜感激) 网上说是版本的原因 无奈最后只能用Macaca App Inspector
二、Macaca App Inspector(命令行终端方式)
更新npm
npm install macaca-cli -g
安装appium
npm install -g appium
安装app-inspector
npm install app-inspector -g
mac终端命令输入macaca doctor检查需要安装的依赖 有区分iOS和Android
ios部分全部为绿色就表示依赖全部安装完毕
终端命令输入appium来启动appium服务
出现下面欢迎界面就表示成功
这里有两个坑:
1、这个目录下的工程要换成自己的开发者账号
2、手机里安装的app必须是debug模式安装的否则回报错(我就是在这弄了好几天都没成功)
a.一定要选中开发证书
b.一定要选中scheme为debug
proxy.js:61:22 [master] pid:19389 xctest client proxy error with: Error: connect ECONNREFUSED 127.0.0.1:8001
三、下面开始用python写脚本连接手机测试
python代码
#encoding:utf-8
from appium import
webdriverdesired_caps = {}
desired_caps['platformName'] = 'iOS'
desired_caps['automationName'] = 'XCUITest'
desired_caps['deviceName'] = 'iPhone 7plus'
desired_caps['bundleId'] = 'com.app.JapanXfortunes'
desired_caps['udid'] = '0be13c5b60ea5fe3c92faa88888899'
desired_caps['xcodeOrgId'] = '569Z88888U'
desired_caps['xcodeSigningId'] = 'iPhone Developer'
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
可以使用mac终端运行python文件或者使用pycharm运行
运行之后不报错就表示成功
然后新建终端命令窗口
输入app-inspector -u
运行成功不出错误的话浏览器会打开一个界面
若切换页面,需现在手机上切换,然后刷新浏览器,则获取手机的最新页面。
这里以app里的取消按钮为例进行脚本测试
选中取消按钮右侧界面会显示元素信息name值取消 我们根据name的值来获取取消按钮的点击事件
在python代码里添加下面一句代码
driver.find_element_by_name("取消").click()
运行python代码后会自动打开我们app并自动点击取消按钮
其他事件的处理都按照此方法
目前我也处在摸索阶段 希望大家多多指点 相互分享经验