完整环境搭建视频课程【腾讯课堂】:https://ke.qq.com/course/3418559?taid=10984662330780095
Android SDK的安装与环境变量配置:https://www.cnblogs.com/my-blogs-for-everone/articles/12712928.html
环境依赖
Node.js
Appium:npm install appium -g
Appium-desktop:https://github.com/appium/appium-desktop/releases
Appium-doctor
Appium-Python-Client
Python
JDK
Andriod SDK
jdk下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
jdk环境变量配置
http://jingyan.baidu.com/article/624e74599e8ad834e8ba5a94.html
Andriod SDK下载地址: http://tools.android-studio.org/index.php/sdk
配置JavaJDK和AndroidSDK环境变量:
ANDROID_HOME:D:\android-sdk 【SDK根路径】
JAVA_HOME:D:\java\jdk1.8.0 【JDK根路径】
添加path环境变量:
%JAVA_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\29.0.3;
from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey
import time
"""
# 连接模拟器
adb connect 127.0.0.1:21543
# 查看adb全部连接设备
adb devices -l
# 查看系统自带的全部包名称
adb shell pm list package -s
# 查看第三方安装的全部包名称
adb shell pm list package -3
# 查看app的启动入口页面【注:执行此命令之前必须先启动app,不然无法获取】
adb shell dumpsys activity | findstr 包名称 | findstr LAUNCHER
adb shell dumpsys activity | findstr com.ss.android.article.news | findstr LAUNCHER
# 通过apk包查询【package和activity->也可能查询不到activity】
# 此方法必须确保apk文件路径中没有中文,不然会报错【dump failed because no AndroidManifest.xml found】
aapt dump badging *.apk
"""
"""
1、使用send_keys方法输入中文必须设置参数unicodeKeyboard和resetKeyboard为True,否则会报错!
"""
desired_caps = {
"platformName": "Android",
"deviceName": "127.0.0.1:21543",
"appPackage": "com.ss.android.article.news", # 今日头条启动APP Package名称
"appActivity": ".activity.MainActivity", # 今日头条app启动入口Activity名称
"unicodeKeyboard": True, # 使用自带输入法,输入中文时填True
"resetKeyboard": True, # 执行完程序恢复原来输入法
"noReset": True, # 不要重置App
"automationName": "UiAutomator2" # 必须配置此参数才能捕捉Toast提示内容【通常显示几秒就会消失】
}
# 连接Appium Server,初始化自动化环境【这里的/wd/hub是appium内置的默认路径,是可以更换的】
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
# 全部元素自动等待5秒
driver.implicitly_wait(5)
driver.find_element_by_id("com.ss.android.article.news:id/eig").click()
search_input = driver.find_element_by_id("com.ss.android.article.news:id/ejl")
ele = search_input.send_keys("今日疫情")
driver.find_element_by_id("com.ss.android.article.news:id/eas").click()
print("模拟操作完成")
quit()