Mac环境安装 Appuim

安装Homebrew

 

安装nodejs

  • Appium是使用nodejs环境开发的,安装Appium之前,先提前把nodejs环境安装好
  • 安装命令:brew install node 和 brew install npm

 

安装python和adb

Mac环境安装 pycharm+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()
posted @ 2022-02-15 00:29  青山原  阅读(166)  评论(0编辑  收藏  举报