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 相关文章推荐
pymongo实现控制mongodb中数字字段做加法的方法
Mar 26 Python
python 异常处理总结
Oct 18 Python
Python内建模块struct实例详解
Feb 02 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
PyQt打开保存对话框的方法和使用详解
Feb 27 Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 Python
python创建ArcGIS shape文件的实现
Dec 06 Python
浅谈Python中range与Numpy中arange的比较
Mar 11 Python
手把手教你安装Windows版本的Tensorflow
Mar 26 Python
python如何写出表白程序
Jun 01 Python
利用Python函数实现一个万历表完整示例
Jan 23 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 Python
Pytest之测试命名规则的使用
Apr 16 #Python
pycharm debug 断点调试心得分享
Python通过m3u8文件下载合并ts视频的操作
Python实现Telnet自动连接检测密码的示例
AI:如何训练机器学习的模型
python 用递归实现通用爬虫解析器
MATLAB 如何求取离散点的曲率最大值
You might like
php下使用strpos需要注意 === 运算符
2010/07/17 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
PHP strripos函数用法总结
2019/02/11 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
prototype 1.5 & scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
js用类封装pop弹窗组件
2017/10/08 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
一道python走迷宫算法题
2018/01/22 Python
详解python读取和输出到txt
2019/03/29 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
初一英语教学反思
2014/01/11 职场文书
会务接待方案
2014/02/27 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
加薪申请报告范本
2015/05/15 职场文书
贫困证明怎么写
2015/06/16 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
Flask response响应的具体使用
2021/07/15 Python
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis