Python+Appium新手教程


Posted in Python onApril 17, 2021

准备

1.电脑系统:win10

2.手机:安卓(没钱买苹果)

3.需要的工具可以从官网下载

安装

  1. python
  2. jdk
  3. 编辑器PyCharm
  4. Appium-windows-x.x
  5. Appium_Python_Client
  6. Android SDK

安装,迈开腿的第一步

python(它可以用于桌面应用,游戏开发,网络爬虫)

勾选Add Python x.x to PATH(没有勾选的安装成功后可手动在环境变量里配置)

Install Now

Python+Appium新手教程

安装中…

Python+Appium新手教程

安装成功

Python+Appium新手教程

验证是否成功,终端输入‘python',出现以下内容就成功了

Python+Appium新手教程

暂时没遇到红海,有问题评论留言~

jdk

Java 语言的软件开发工具包

appium server好像只支持1.8的jdk,so有时候太优秀不一定能被认可(狗头保命)

Python+Appium新手教程

Python+Appium新手教程

Python+Appium新手教程

Python+Appium新手教程

安装成功,需要在环境变量里配置一下

Python+Appium新手教程

新建一个'JAVA_HOME'

Python+Appium新手教程

把‘JAVA_HOME'添加到path里,注意是添加不是替换,后果不堪设想

Python+Appium新手教程

确定确定确定,打开cmd运行测试一下是否安装成功,输入‘java -version',成功

Python+Appium新手教程

编辑器PyCharm

敲代码的

Python+Appium新手教程

Python+Appium新手教程

勾选64-bit launcher 64位启动器

.py那个随意,我这边勾选

Python+Appium新手教程

Python+Appium新手教程

成功

Python+Appium新手教程

安装过程暂时没发现什么错误

Appium-windows-x.x

运行脚本需要,可查看运行日志,可以获取app页面元素

Python+Appium新手教程

Python+Appium新手教程

第一次运行可能有点慢,耐心等待就好了

Python+Appium新手教程

Python+Appium新手教程

右上角的三个按钮分别是

  • “start inspector session(启动检查器会话)”
  • “Get Raw log(查看日志)"
  • “Stop Server(停止服务)”

通俗一点 “冲啊” “让我看看” “不想搞了”

下面一块是看日志的

Python+Appium新手教程

最喜欢的来了,菜单栏有个View—语言—中文(我的宝贝啊)

Python+Appium新手教程

Appium_Python_Client

调用客户端库和 Appium Server 进行通信

    pip install Appium-Python-Client

或者去Pypi下载

Python+Appium新手教程

下载后解压使用cmd进入Appium-Python-Client-x.x

输入

python setup.py install

运行 setup.py文件就好了

Python+Appium新手教程

Android SDK

手机baiandroid系统的开发发包,用来执行命令设置手机、传送文件、安装应用、查看手机界面等

找个风水宝地解压就好了

Python+Appium新手教程

所有需要的工具都安装成功了,来个表情包庆祝一下

连接手机

敲黑板,重点来了,做app自动化肯定要用到手机噻,拿usb连接电脑

(1) 拿出你的手机-----打开手机设置------找到关于手机-------一直点击版本号直到出现提示

Python+Appium新手教程

(2) 打开手机的开发者选项,该开的开,该关的关,特别是USB调试这里一定要打开

Python+Appium新手教程

还有USB设置需要改一下,暂时只发现这两个比较重要,有兴趣的可以研究一下开发人员选项

Python+Appium新手教程

(3) 测试是否连接成功,在终端输入‘adb devices -l',查看连接的设备,如果列表为空,检查一下是不是有以上原因(1)(2),有什么问题评论区留言

Python+Appium新手教程

使用python+appium打开手机app-B站

打开PyCharm and appium,直接Start Server Vx,xx,x

新建一个项目

Python+Appium新手教程

新建一个.py,输入以下代码(单纯打开app)

# 导入webdriver
from appium import webdriver
# 初始化参数
desired_caps = {
    'platformName': 'Android',  # 被测手机是安卓
    'platformVersion': '10',  # 手机安卓版本
    'deviceName': 'xxx',  # 设备名,安卓手机可以随意填写
    'appPackage': 'tv.danmaku.bili',  # 启动APP Package名称
    'appActivity': '.ui.splash.SplashActivity',  # 启动Activity名称
    'unicodeKeyboard': True,  # 使用自带输入法,输入中文时填True
    'resetKeyboard': True,  # 执行完程序恢复原来输入法
    'noReset': True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
    'newCommandTimeout': 6000,
    'automationName': 'UiAutomator2'
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 退出程序,记得之前没敲这段报了一个错误 Error: socket hang up 啥啥啥的忘记了,有兴趣可以try one try
driver.quit()

不同的手机有不同的版本,自己找一下大概就是这个意思

手机安卓版本platformVersion:

Python+Appium新手教程

每一个app都有appPackage、appActivity,那应该在哪里查看呢

打开终端输入(手机需要连接电脑)

adb shell dumpsys activity recents | find “intent={”

Python+Appium新手教程

cmp=tv.danmaku.bili/.ui.splash.SplashActivity就是我们需要的appPackage、appActivity了

appPackage = tv.danmaku.bili

appActivity = .ui.splash.SplashActivity

此时我的手机后台是个这样的

Python+Appium新手教程

打开成功,运行的时候会在手机上安装东西,需要手动同意安装,或者在开发选项中开权限,听懂鞭炮

获取app元素信息

得到元素才能操控它

两种方法

(1)使用appium

(2)使用uiautomatorviewer(Android SDK自带的元素定位工具)

这两个不可以同时使用,以我现在的技术来看我个人推荐使用appium

-----------------------------这是一条分割线------------------------------------

appium:打开appium,点击Start Inspector Session

Python+Appium新手教程

输入对应的内容(之前那段代码把参数和值填进去就好了)

Python+Appium新手教程

打开后我们可以看见这样一个界面,鼠标悬浮在手机界面上可以看到元素,点击可在右侧查看到需要的元素

Python+Appium新手教程

uiautomatorviewer(Android SDK自带的元素定位工具)

之前下载过的Android SDK,打开路径:androidsdk\tools\bin就可以找到uiautomatorviewer了,double click打开它

Python+Appium新手教程

会得到这样的一个界面

Python+Appium新手教程

在点击左上角的device Screenshot(uiautomator dump)获取手机上的屏幕,如果是不同的页面需要重新点击

Python+Appium新手教程

鼠标悬浮点击可以看到这个元素的信息

Python+Appium新手教程

有一些人点击uiautomatorviewer.bat会闪退,试试下面这个办法,如果不行百度去吧

开玩笑的啦,我也是百度找方法的,找了好久没啥子用,还是评论区留言一起解决吧(一起百度)

打开环境变量,新建一个 ANDROID_SWT

我的swt是在D:\app\androidsdk\tools\lib\x86_64,输入正确路径即可

Python+Appium新手教程

确定确定确定,在重新试试double click它

知道元素后就可以操作它了

使用python+appium操作app-B站

目标:使用B站搜索‘泰坦尼克号'

常用的获取元素方法有

find_element_by_id()

find_elements_by_class_name()

find_element_by_xpath()

find_element_by_css_selector()

# 导入webdriver
from appium import webdriver
# 初始化参数
desired_caps = {
    'platformName': 'Android',  # 被测手机是安卓
    'platformVersion': '10',  # 手机安卓版本
    'deviceName': 'xxx',  # 设备名,安卓手机可以随意填写
    'appPackage': 'tv.danmaku.bili',  # 启动APP Package名称
    'appActivity': '.ui.splash.SplashActivity',  # 启动Activity名称
    'unicodeKeyboard': True,  # 使用自带输入法,输入中文时填True
    'resetKeyboard': True,  # 执行完程序恢复原来输入法
    'noReset': True,  # 不要重置App,如果为False的话,执行完脚本后,app的数据会清空,比如你原本登录了,执行完脚本后就退出登录了
    'newCommandTimeout': 6000,
    'automationName': 'UiAutomator2'
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 设置等待时间,如果不给时间的话可能会找不到元素
driver.implicitly_wait(5)
# 点击搜索框
driver.find_element_by_id("expand_search").click()
# 输入“泰坦尼克号”
driver.find_element_by_id("search_src_text").send_keys("泰坦尼克号")
# 键盘回车
driver.keyevent(66)
# 因为它搜索完后就直接退出app了,看不到搜索结果页,所以我给了一个让他停下的方法
input('**********')
# 退出程序,记得之前没敲这段报了一个错误 Error: socket hang up 啥啥啥的忘记了,有兴趣可以try one try
driver.quit()

最后就是这样子的

Python+Appium新手教程

到此这篇Python+Appium新手教程的文章就介绍到这了,更多相关Python+Appium教程内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中requests模块的使用方法
Apr 08 Python
python numpy函数中的linspace创建等差数列详解
Oct 13 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
django实现用户登陆功能详解
Dec 11 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
django做form表单的数据验证过程详解
Jul 26 Python
python实现吃苹果小游戏
Mar 21 Python
Python多线程Threading、子线程与守护线程实例详解
Mar 24 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
Python类class参数self原理解析
Nov 19 Python
实例详解Python的进程,线程和协程
Mar 13 Python
Pytest之测试命名规则的使用
Apr 16 #Python
pycharm debug 断点调试心得分享
Python通过m3u8文件下载合并ts视频的操作
Python实现Telnet自动连接检测密码的示例
AI:如何训练机器学习的模型
python 用递归实现通用爬虫解析器
MATLAB 如何求取离散点的曲率最大值
You might like
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
超简单的jquery的AJAX用法
2010/05/10 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
图解javascript作用域链
2019/05/27 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
Python单链表的简单实现方法
2014/09/23 Python
Python中的默认参数实例分析
2018/01/29 Python
Python zip()函数用法实例分析
2018/03/17 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
Python提取频域特征知识点浅析
2019/03/04 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
Python如何输出警告信息
2020/07/30 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
体育教师工作总结的自我评价
2013/10/10 职场文书
生物学学生自我评价
2014/01/17 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
交通事故协议书
2014/04/15 职场文书
赞助商致辞
2015/07/30 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS