Mac环境安装 Appuim
安装Homebrew
- 安装命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 安装brew 程序(Homebrew简称brew,OSX上的软件包管理工具)
- 使用上述命令过程中要求输入mac登录用户的密码,输入回车即可,过程中需要下载稍微有点慢
安装nodejs
- Appium是使用nodejs环境开发的,安装Appium之前,先提前把nodejs环境安装好
- 安装命令:brew install node 和 brew install npm
安装python和adb
安装xcode
- 直接在AppStore安装即可
安装appium
- [待上传]
安装appium诊断工具
- npm install -g appium-doctor
- 使用appium诊断:appium-doctor
Appium-doctor上的各种报错
1.Carthage was NOT found!
-
安装命令:brew update和brew install carthage(需安装Homebrew后执行)
-
在code设置里,将Command line Tools设置一下,在Xcode>preferences>Locations里面,设置之后再运行终端
3.JAVA_HOME is set to '/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/' but this is NOT a valid path!
- 环境配置错误,检查一下:open ~/.bash_profile
编辑配置
- 运行之后下面有个Edit Configurations(编辑配置)。可以在左上角菜单栏 View->Languages->中文。切换成中文。
- 在该菜单下配置对应ANDROID_HOME,JAVA_HOME 路径即可。
设置启动参数
{
"platformName":"Android",
"platformVersion":"11",
"deviceName":"test",
"appPackage":"com.xxxx.xxxx",
"appActivity":"com.xxxx.xxxx.xxxActivity"
}
1.获取platformVersion:
- adb shell getprop ro.build.version.release
2.获取deviceName:
- adb devices
- 获得的那一串数字就是
3.获取当前apk的 package 与 activity的命令:
【方法一】: adb shell dumpsys activity activities
- [待确认]存在两个不同的activity,暂未知原因
【方法二】:aapt dump badging apk文件的地址
- 安装好Android sdk后可使用aapt(sdk自带的一个工具)
- 第一个name就是appPackage,launchable-activity的name后是appActivity
启动遇到的问题
【问题1】An unknown server-side error occurred while processing the command. Original error: 'app' option is required for reinstall
- package 与 activity的存在问题
【问题2】Error starting Appium server: listen EADDRINUSE 0.0.0.0:4723
- 重复启动
pycharm启动
- 安装:pip install Appium-Python-Client
- 测试脚本:需要修改相关platformName、appPackage、appActivity
from appium import webdriver
class Desired_caps:
def __init__(self):
# -----------------------------包名相关信息-----------------
desired_caps = {'platformName': 'Android',
'deviceName': '000003b44ea8ca4e',
'appPackage': 'com.hellotalk',
'appActivity': '.lib.main.launch.ui.LaunchActivity',
'autoGrantPermissions': True, # 解决权限问题
'resetKeyboard': True, # 自动化结束后恢复原始数据模样
'newCommandTimeout': 60000, # appium server 认为和客户端之间无响应最大时间 超过将就会停止服务
'automationName': "UiAutomator2"
}
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
self.driver.implicitly_wait(15)
driver = Desired_caps()