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"
}

启动会话

可选择页面指定元素,查看对应信息

posted @ 2023-02-01 17:43  郭小睿  阅读(382)  评论(0编辑  收藏  举报