首页 > 技术文章 > appium的安装配置

fairytalk 2020-07-16 09:23 原文

安装

安装Appium Python Client 包 (Client库)

pip install Appium-Python-Client

要确保安装匹配版本的selenium 和 appium

pip install selenium -U

安装AppiumServer

  • 方法一:node.js & npm (下载比较缓慢)
npm install -g appium

安装 Android SDK

  * 安卓app自动化, Appium server 依赖 Android SDK

Android Studio 包含了 Android SDK的安装工具

官方 网站

* https://developer.android.google.cn/studio

历史版本

* https://developer.android.google.cn/studio/archive

设置环境变量 Android_Home

将adb所在路径设置到 path 环境变量中

另外添加两个环境变量 ANDROID_HOME,JAVA_HOME

真机测试

以honor为例

启用开发者模式USB调试

{
   "platformName": "Android",
   "platformVersion": "9",
   "deviceName": "BND-AL10-A5RNW18316011526",
   "appPackage": "tv.danmaku.bili",
   "appActivity": "ui.splash.SplashActivity",
   "unicodeKeyboard": true,
   "resetKeyboard": true,
   "noReset": true,
   "newCommandTimeout": 6000,
   "automationName": "UiAutomator2"
}

使用adb命令查看对应的值

# 获取设备号
adb devices

# 获取系统版本
adb -s 设备号 shell getprop ro.build.version.release

# 获取app启动包名和启动名(⚠️ 手机需要先打开对应app)
1.Mac/Linux:
	adb shell dumpsys window windows | grep mFocusedApp
2.在 Windows 终端运行 '
	adb shell dumpsys window windows
        adb shell dumpsys window windows | findstr "mCurrent"
然后去看mFocusedApp这一行的内容。


如图

Snipaste_2020-07-16_09-13-50.jpg

start

python自动化执行

查看界面元素的属性

  • C:\androidsdk\tools\bin\uiautomatorviewer.bat
  • appium server界面也可以查看
from appium import webdriver
# 可视化投屏
from appium.webdriver.extensions.android.nativekey import AndroidKey

desired_caps = {
    
    "platformName": "Android",
    "platformVersion": "9",
    "deviceName": "BND-AL10-A5RNW18316011526",    # 自己手机型号-adb devices 返回的设备号
    "appPackage": "tv.danmaku.bili",    # 启动APP package 名称
    "appActivity": "ui.splash.SplashActivity",    # 对应的activity名称
    "unicodeKeyboard": True,    # 需要输入中文,
    "resetKeyboard": True,
    "noReset": True,
}
# 连接Appium Server, 初始化自动化环境  开始控制手机 固定写法 desird_caps:配置信息
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 设置缺省等待时间
driver.implicitly_wait(10)

# 根据id定位搜索位置框,点击
driver.find_element_by_id("expand_search").click()

# 根据id定位搜索框输入框,点击
sbox = driver.find_element_by_id('search_src_text')
sbox.send_keys('老祝头之夜的钢琴曲第五篇')

# 输入回车键,确定搜索
driver.press_keycode(AndroidKey.ENTER)

# 选择(定位) 所有视频标题 因为id不唯一 所有用 elements
eles = driver.find_elements_by_id('title')

for ele in eles:
    ele.click()
    # 打印标题
    # print(ele.text)

input('****按任意键退出...')
driver.quit()

推荐阅读