目录
一、环境搭建
1.1 安装client编程库
1.2 安装Appium Server
1.3 安装JDK
1.4 安装 Android SDK
1.5 手机调试
1.6 环境验证
二、自动化操作
2.1 查找APP Package名和启动Activity名
2.2 界面元素查看
2.2.1 uiautomatorviewer
2.2.2 Appium
三、源码
通过pip命令下载
pip install appium-python-client
Appium Server基于js开发
https://github.com/appium/appium-desktop/releases/tag/v1.22.3-4https://github.com/appium/appium-desktop/releases/tag/v1.22.3-4
https://www.oracle.com/java/technologies/downloads/https://www.oracle.com/java/technologies/downloads/
安装完成后,添加环境变量JAVA_HOME
JAVA_HOME E:\java\jdk1.8.0_211
同样下载androidsdk安装包,完成后配置环境变量ANDROID_HOME,加入环境变量PATH
1.5.1 用USB线连接上安卓手机
1.5.2 设置➡关于手机,不断点击版本号7次以上
1.5.3 退出到上级菜单,在开发者模式中,启动USB调试
cmd调出命令行,输入adb devices -l,返回如下说明此时环境搭建完成
注:具体环境搭建操作和安装链接可参考up主白月黑羽
环境搭建https://www.byhy.net/tut/auto/appium/01/#%E5%AE%89%E8%A3%85-android-sdk
手机上打开学习通APP,在cmd中执行
adb shell dumpsys activity recents | find "intent={"
输出
其中第一行最后cmp即为Package名和Actiivity名
应用的package名称就是 com.chaoxing.mobile
应用的启动Activity就是 .activity.SplashActivity
在你之前下载的androidsdk中D:\web\appium\androidsdk\androidsdk\tools\bin\uiautomatorviewer.bat
打开后,出现
点击
出现页面的构成元素
同样也是在之前下载好的软件中
输入手机的相关参数
定位xpath元素
接下来就是一步一步xpath,一步一步click
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 设置缺省等待时间
driver.implicitly_wait(5)
# 南通大学图书馆
driver.find_element(By.XPATH, '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.TabHost/android.widget.RelativeLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ViewFlipper/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.support.v4.view.ViewPager/android.widget.RelativeLayout/android.support.v7.widget.RecyclerView/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout[1]/android.view.ViewGroup/android.widget.TextView').click()
time.sleep(1)
完整代码放在Github中,不同学校图书馆系统虽不一样,但大体思路相同,可自行编写
https://github.com/5-Daisy/NTU_Library/tree/masterhttps://github.com/5-Daisy/NTU_Library/tree/master
注:本文仅做学习交流,旨在为有需要的人提供便利,不做任何商业用途,技术理应服务于生活。