1. 安装准备
appium-server 安装 下载地址:http://appium.io/
安装adb 下载地址:https://developer.android.com/studio/releases/platform-tools.html # 参考https://www.jianshu.com/p/7c0a6da594c8
将adb路径添加到环境变量
pip install Appium-Python-Client slenium
python3.7以上,因为新版appium源码有些语法python3.7以下不适用会报错。
2. adb使用
手机连接电脑,打开开发者模式
在cmd中输入adb devices -l
成功后会有设备名称
3. appium-server
启动appnium
直接点击start server
{
"platformName": "Android",
"deviceName": "NAB0220B17012166", # 通过 adb devices -l 获取
"appPackage": "com.vbhledger.taft", # adb shell am monitor 运行app找到包名
"appActivity": ".modules.main.LaunchActivity" # adb shell dumpsys package <package name> 通过前几行信息获取app的启动页
}
另一个获取activity的方法
adb命令 adb shell logcat|findstr "Displayed"
之后打开app进到想要的界面
保存之后点击 start server
4. demon示例
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
if __name__ == '__main__':
server = "http://localhost:4723/wd/hub"
desired_caps = {
"platformName": "Android",
"deviceName": "NAB0220B17012166",
"appPackage": "com.vbhledger.taft",
"appActivity": ".modules.main.LaunchActivity"
}
driver = webdriver.Remote(server, desired_caps)
wait = WebDriverWait(driver, 30)
# 登录
driver.find_element_by_xpath('//android.widget.FrameLayout[@content-desc="我的"]').click()
login_btn = wait.until(EC.presence_of_element_located((By.ID, "com.vbhledger.taft:id/tvClickLogin")))
login_btn.click()