Mac+python+appium+android坑记录
brew安装jdk1.8
更新jdk,这个命令由于依旧是从国外的源更新,所以需要多试几次。
brew tap AdoptOpenJDK/openjdk
安装jdk1.8,二选一
brew install adoptopenjdk8 或者 brew install --cask adoptopenjdk8
配置环境变量
sudo vim /etc/profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
brew安装android-sdk
brew install android-sdk
brew install android-platform-tools
检查安装成功
android
配置sdk路径
查看sdk安装路径
brew list android-sdk
修改配置文件
vi ~/.bash_profile
export ANDROID_HOME=/usr/local/Caskroom/android-sdk
export PATH=${PATH}:$ANDROID_HOME/tools
export PATH=${PATH}:$ANDROID_HOME/platform-tools
生效配置文件
source ~/.bash_profile
检查sdk安装成功
adb version
使用 Appium 报错“... Could not find ‘apksigner.jar‘ in ...”
下载 apksigner.jar
https://github.com/owner888/apktool-go/blob/main/Resources/apksigner.jar
移至 Android SDK 的 platform-tools 目录下
启动appium-server
使用 Appium 报错“... Could not find ‘apksigner.jar‘ in ...”
appium-doctor 检测 appium 的安装是否成功
上图中的 “adb, android, emulator could NOT be found in /usr/local/Caskroom/android-sdk!” 是个大坑!必须要解决掉!!!否则在后续运行脚本的时候会报错!导致脚本运行失败。
先说一下上图中的这个报错的原因,之所以报错就是因为 "adb, android, emulator " 这三个可执行文件没有在 “/usr/local/Caskroom/android-sdk” 路径下造成的。(这个路径是我的 android sdk 环境变量 路径,也可能是因为我设置了这个环境变量的缘故)
So… 尝试解决一下吧!先来看看当前的 “adb, android, emulator” 的路径分别在哪里。终端执行命令 “which adb android emulat” 或者 “where adb android emulator”
在分别查看 “adb, android, emulator” 软连接的真实路径 “ls -al /usr/local/bin/adb && ls -al /usr/local/bin/android && ls -al /usr/local/bin/emulator”
这里可以看到 adb 的路径 platform-tools与 android 、emulator 的路径 tools 与我们的环境变量配置的是一致的。既然如此,直接将 platform-tools 与 tools 复制或者移动到 android-sdk 路径下看看是否能解决。
mv /usr/local/Caskroom/android-platform-tools/33.0.2/platform-tools /usr/local/Caskroom/android-sdk/
mv /usr/local/Caskroom/android-sdk/4333796/tools /usr/local/Caskroom/android-sdk/
where adb android emulator
再次执行 appium-doctor 检查 appium 的环境
完美解决!! 这个坑,耗费了我1个多小时,到处查帖子。
手机设置
设置appium-server环境变量
/usr/local/Caskroom/android-sdk
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
启动appium检查器
添加需测试app应用参数
{
"platformName": "Android",
"appium:deviceName": "17fb0b59",
"appium:appPackage": "com.safetybase.sdp",
"appium:newCommandTimeout": 30,
"appium:automationName": "Appium",
"appium:ignoreHiddenApiPolicyError": true,
"appium:appActivity": "com.safetybase.sdp.MainActivity"
}
启动会话
可选择页面指定元素,查看对应信息