今日份问题
我:手动就可以操作简单的测试,为什么要自动化测试
老师:主要是回归测试。改了bug之后,重新再来测试。这样用回归测试就比手动测试要节约成本

Appium+Python移动端实战

  • 一、前提
  • 二、上实战

一、前提

  1. 开启模拟器(我的是直接用的Android Studio的模拟器,所以在开启模拟器之前我还要开启Android Studio)
  2. 打开appium服务器
  3. 打开pycharm
  4. 打开cmd

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
如有转载,请注明出处(如不注明,盗者必究)

二、上实战

打开模拟器
在cmd中输入代码:

adb shell dumpsys window | findstr mCurrentFocus

可查询到包名和界面名(界面名可以省略包名,但是我害怕漏了那个点,一般都不省略)
比如说我的包名:

com.google.android.apps.messaging

界面名

.conversation.screen.ConversationActivity

or

com.google.android.apps.messaging.conversation.screen.ConversationActivity

打开appium,进入服务器,点击搜索框,进入界面

点击

进入编辑界面,在框里面输入代码连接模拟器
代码如下

下面的代码注释:
第一条:平台的名字,不区分大小写,“Android”;“ios”
第二条:平台的版本,可以不写后续版本号
第三条:设备的名字,不能为空 (cmd后 adb devices可以看)
第四条:要打开的应用程序包名(上面cmd的命令可查出来)
第五条:要打开的应用程序的界面名(上面cmd的命令可查出来)
第六条:设备的名字
{"platformName": "Android","platformVersion": "5.0","deviceName": "emulator-5554","appPackage": "com.google.android.apps.messaging","appActivity": "com.google.android.apps.messaging.ui.ConversationListActivity","udid": "emulator-5554"
}


填完之后记得保存

在点击Start Session,就可以进入appium的自动化界面,模拟器也会自动跟着运行

接下来我们就来查看我们要按的键的xpath路径,点击我想要自动运行的键,在Select Element中可以看到xpath路径。

将路径的中括号部分保留下来,例如我的是

//android.widget.Button[@content-desc="Start chat"]

需要的是

[@content-desc="Start chat"]

但放在pycharm中的会有报错,因此就需要换引号(这个自行调整就是)
于是放在pycahrm 中的python代码就应该是

driver.find_element_by_xpath("//*[@content-desc='Start chat']").click()  #点击事件

上实战代码

from appium import webdriver
import time
desired_caps=dict()
desired_caps['platformName']='Android'#平台的名字,不区分大小写,“Android”;“ios”
desired_caps['platformVersion']='5.0'#平台的版本,可以不写后续版本号
desired_caps['deviceName']='emulator-5554'#设备的名字,不能为空
# desired_caps['appPackage']='com.google.android.apps.messaging' #要打开的应用程序包名
# desired_caps['appActivity']='.ui.ConversationListActivity'#要打开的应用程序的界面名
desired_caps['udid']='emulator-5554'#连接设备的唯一标识
driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)#连接 appium 服务器driver.start_activity("com.google.android.apps.messaging", "com.google.android.apps.messaging.ui.ConversationListActivity") #包名(前面是包名,后面是界面名)
time.sleep(3)
driver.find_element_by_xpath("//*[@content-desc='Conversation list']").click()  #点击事件
time.sleep(3)
driver.find_element_by_xpath("//*[@content-desc='Start chat']").click()  #点击事件
time.sleep(5)
driver.quit()#如何定位一组元素,比如说我要打开设置的第三个选项
# driver.start_activity("com.android.settings",".Settings")
# A=driver.find_elements_by_class_name("android.widget.LinearLayout")
# A[6].click()
# time.sleep(5)
# driver.quit()

随后,我的app就可以自动运行了
如下

https://blog.csdn.net/hanhanwanghaha欢迎关注这个超级无敌可爱的人鸭,有什么问题留言私信皆可,看见必回!
创作不易,如有转载,请注明出处

Appium+Python移动端 实战——教你如何xpath定位自动化测试相关推荐

  1. Appium+Python移动端(Android)自动化测试环境搭建原来没有那么难!+ 带你实战去

    Appium 是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应 用,且是跨平台的.可用于 ios 和 Android 操作系统. Appium+Python 一.前提 1.1 JD ...

  2. appium+python自动化项目实战(一):引入nose和allure框架

    本文将介绍一套比较完整的appium自动化框架,以python为编写脚本语言,是因为python有强大的库,同时易学易懂. 最终的测试框架代码,将在jenkins项目中一键构建,执行自动化测试用例,并 ...

  3. Python撩妹实战——教你用微信每天给女朋友说晚安

    能用朋友通红弄自动但凡一件事,稍微有些重复.我就考虑怎么样用程序来实现它.这里给各位程序员朋友分享如何每天给朋友定时微信发送"晚安",故事,新闻,等等··· ···最好运行在服务器 ...

  4. appium+python自动化项目实战(二):项目工程结构

    废话不多说,直接上图: nose.cfg配置文件里,可以指定执行的测试用例.生成测试报告等.以后将详细介绍. 转载于:https://www.cnblogs.com/luihengk/p/114142 ...

  5. Appium+python自动化29-appium对博客园APP进行自动化测试

    下载与安装 下载App 并安装到手机. https://files.cnblogs.com/files/zhangmumu/cnblogs.apk 获取appPackage和appActivity 参 ...

  6. Android变量longpress,Appium+Python Flick longpress press区别(Android)

    在使用Appium的Python client端的写Android脚本时,发现使用flick方法输出滑动不好控制,明明是偏移量100px但是有时候滑动很快直接到底部,有时又是100px的距离.所以这样 ...

  7. python android自动化元素定位_linux下Appium+Python移动应用自动化测试实战---3.手把手教你定位元素编写测试用例...

    linux下Appium+Python移动应用自动化测试实战-3.手把手教你定位元素编写测试用例 前言 有很多童鞋环境搭建好了却没有进行下一步,是因为缺少step by step的资料. 互联网上ap ...

  8. Appium + python 实战

    文章目录 Appium介绍 Appium 原理 Appium使用 Appium + Python实战 Appium介绍 是一个移动端的自动化测试框架,是跨平台的,支持ios和Android平台上的移动 ...

  9. python移动端_移动端Python爬虫实战-2020版

    第1章 2020版 第一章 移动端Python爬虫进阶实战课程导学 介绍课程目标.通过课程能学习到的内容.学会这些技能能做什么,对公司业务有哪些帮助,对个人有哪些帮助.介绍目前app数据抓取有哪些困难 ...

最新文章

  1. TensorFlow基础剖析
  2. R基于H2O包构建深度学习模型实战
  3. pcb成型板aoi检测_一种PCB板的AOI检测控制系统的制作方法
  4. golang interface传结构体
  5. 路由交换基础——DHCP工作原理及DHCP Relay
  6. azure 安全组_具有安全性和设计注意事项的Azure成本跟踪
  7. java分桃子_Java经典编程题分桃子
  8. Delphi的RzDbgrid改变某行的背景色
  9. 机器学习sklearn
  10. 在mininet中测试TCP、UDP带宽并作图
  11. LCD1602的学习与理解
  12. mysql静默安装_Windows环境Mysql静默安装
  13. python控制摄像头云台_python-onvif实现客户端控制相机云台
  14. java操作txt文件目录
  15. 清空计算机网络缓存,怎么清除DNS缓存 利用命令行清理dns缓存方法
  16. 又一恐怖技能!卡耐基梅隆大学发布超强智能体,炸翻科研圈
  17. Python人脸识别图片视频
  18. 用墨刀做出的交互动效,10个优秀作品欣赏
  19. python一个函数调用另一个函数中的变量_在Python 中同一个类两个函数间变量的调用方法...
  20. 响应式精美列表商城发卡源码

热门文章

  1. c mysql 添加数据类型_MYSQL的常用命令和增删改查语句和数据类型
  2. 转专业计算机c语言,转专业申请美国计算机专业研究生必须要做的准备
  3. linux文件名过长无法删除,不能删除文件,出现“源文件名长度大于系统支持的长度...
  4. matlab如何导入多文本数据,将文本文件中的混合数据导入表
  5. word无法打开请去应用商店_word软件是什么?word文档是什么?可以用来干什么?...
  6. (递归)斐波那契数列
  7. 2018全国计算机音乐大赛一等奖,2018全国数字音乐大赛总决赛精彩无限!小学员的技能震惊评委!...
  8. android 多级分组,android 二级菜单(类似QQ分组)
  9. php中多选提交如何获取,php中checkbox值获取,显示,多选值获取
  10. Java Swing专栏订阅须知《必读》