appium的安装配置
安装
安装Appium Python Client 包 (Client库)
pip install Appium-Python-Client
要确保安装匹配版本的selenium 和 appium
pip install selenium -U
安装AppiumServer
- 方法一:node.js & npm (下载比较缓慢)
npm install -g appium
-
方法二: Appium Desktop
下载地址 http://appium.io/
安装 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这一行的内容。
如图
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()
种一棵树最好的时间是十年前,其次是现在