Appium 使用笔记
环境安装
- 安装Python 3.8.4
- 安装JDK 1.8.0_131
- 安装 Android SDK
- 安装夜神模拟器
- 安装 appium : appium-desktop-setup-1.6.3
下载和安装 appium-desktop:
下载地址:https://github.com/appium/appium-desktop/releases
- 安装 appium 的 python 客户端 Appium-Python-Client
配置 APP 信息
输入必要参数,点击连接,以微信为例:
添加以下四项值,完后点击“Start Session”。
- platformName---设备平台,Android或IOS
- deviceName----设备名。按上边adb devices -l 查出的设备名modle填写即可
- appPackage----要启动的app的包名,是App开发者提供的名称。微信是"com.tencent.mm"
- appActivity----要启动的界面,是App提供的各种不同的功能。每个程序都有个MainActivity,就是打开程序时显示在屏幕的活动。微信启动界面是".ui.LauncherUI"
appPackage和appActivity获取:
首先在android手机或模拟器上打开App,输入下面的abd命令:
sh
adb shell dumpsys window windows | findstr mFocusedApp
# 正在运行应用包名
adb shell dumpsys window | findstr mCurrentFocus注意:要先在模拟器里打开APP,否则看不到相关信息
python 代码
- 登录微信的操作
sh
pip install Appium-Python-Client Seleniumpy
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# appium服务监听地址
server='http://localhost:4723/wd/hub'
# app启动参数
desired_caps={
"platformName": "Android",
"deviceName": "SM_N976N",
"appPackage": "com.tencent.mm",
"appActivity": ".ui.LauncherUI",
'connectTimeout': 10
}
# 驱动
driver = webdriver.Remote(server,desired_caps)
wait = WebDriverWait(driver,10)
# 点击启动页
qidongye = wait.until(EC.presence_of_element_located((By.ID,"android:id/content")))
qidongye.click()
# 获取登录按钮
login_btn = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/j_9")))
# 点击登录按钮
login_btn.click()
# # 获取手机号文本框
phone_text = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/cd7")))
# # 填写手机号文本框
phone_text.send_keys("1234")- 打开 豆果美食
py
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
# desired_caps['platformVersion'] = '8.0'
desired_caps['deviceName'] = '127.0.0.1:5555'
desired_caps['appPackage'] = 'com.douguo.recipe'
desired_caps['appActivity'] = 'com.douguo.recipe.MainActivity'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)参考
- python appium+夜神模拟器 配置 笔记整理
- python+appium+夜神模拟器搭建app自动化环境
- appium连接夜神模拟器操作app
- appium自动化测试
- 自动化测试之路 —— Appium使用教程
- Appium自动化之adb常用命令及连接mumu模拟器
问题
解决:python+appium报错ValueError: Timeout value connect was <...>, but it must be an int, float or None.
最直接的解决方案就是selenium版本降级:
pip install --force-reinstall -v "selenium==4.8.0"参考:https://blog.csdn.net/qq_48302722/article/details/130861992