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

今日份问题
我:手动就可以操作简单的测试,为什么要自动化测试
老师:主要是回归测试。改了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欢迎关注这个超级无敌可爱的人鸭,有什么问题留言私信皆可,看见必回!
创作不易,如有转载,请注明出处
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【工作总结】银行应用系统架构(三)

上一次的文章中,介绍了银行应用系统的架构层次。如同人体的结构一样,是一个从宏观,逐渐细化到微观的过程(见下图)。 人体结构大致是这样的: 那么具体来分析,银行应用系统架构的每一层&#xff0…

黑盒测试 — 测试用例 之 判定表法看这一篇就够了

测试用例 之 判定表法一、应用场景二、判定表法定义三、步骤四、实战 — 案例分析一、应用场景 在一些数据处理问题中,逻辑条件取值的组合过多时,判定表是一个不错的选择! 二、判定表法定义 判定表通常由四个部分组成,如下: 意…

逻辑思维题一:条件组合覆盖

我们知道软件测试对测试人员的逻辑思维要求比较高,而且笔试时经常会出一些逻辑思维方面的问题,今天我们来看一个问题。题目是这样的:八瓶酒一瓶有毒,用人测试。每次测试结果8小时后才会得出,而你只有8个小时的时间。问…

《产品思维30讲》精华及感想

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 看了梁宁fairy大佬对产品思维的30讲及David,结…

【资讯】时间的朋友2017跨年演讲全回顾

2016年12月31日20:30,上海梅赛德斯奔驰文化中心,罗振宇“时间的朋友”跨年演讲如约而至。 罗胖曾发下大愿望:举办跨年演讲,连办二十年。今年,是倒数第十八场。 历时四个小时的演讲中,罗胖带着自己过去一年…

你值得掌握的Windows热键——原来高手都是这样玩电脑的!

2021年的开篇之作《你值得掌握的Windows的15个热键》和实用却冷门的几个电脑实用小技巧,再给大家分享一首敲级好听的歌——海龟先生的《男孩别哭》。很好听的旋律 哈哈哈。 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众…

【文章】人的好运从哪里来?

好运气是自己给的。 一、从好身体来 健康是福。有了健康的身体才有奋斗成功的本钱。要有健康身体,除了要注重饮食与运动外,还要正常的生活习惯。心理的健康也很重要。身心健康,就能顺利工作生活,迎着阳光,灿烂美好&…

带你一起学计算机专业英语!(IT行业、四六级党快记起来)《软件工程专业英语》第三单元:项目计划——单词、短语、名词缩写、难句

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

机器智能简史

序 在200年前,曾三次担任美国国务卿的政治家丹尼尔韦伯斯特,对革命性的蒸汽机作出了如下评价: 它可以开船、抽水、挖掘、载物、拖曳、举物、锤打、织布、印刷。它仿佛一个人,至少属于工匠阶级:“停止你的体力劳动&…

数据分析——切片器、数据透视表与数据透视图(职场必备)

在处理小量数据的时候,excel真是一个强大的武器,最近闲下来的时候就温习excel的数据处理,接下来来梳理一下切片器、数据透视表与数据透视图的使用重点,有任何不懂的可以马上私信我。近期也会更新像powerbi相关的东西,欢…

kex_exchange_identification: Connection closed by remote host Connection closed by 140.82.121.3 port

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 我在上传项目至远程仓库的时候遇到这样的问题 $ git push…

【文章】古人最睿智的十封“信”,写得如此通透!

第1封:写给相遇 相遇时难别亦难, 东风无力百花残。 ——李商隐 假如人生不曾相遇,自己就还是那个自己,日复一日地奔波,淹没在这个喧嚣的世间。 因为遇见了那些注定要遇见的人,自己不再是原来的自己&#…

测试开发——软件测试虚拟环境的搭建

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 前言:为什么要搭建python的虚拟环境&#xff1…

OpenCV 3.1 imwrite()函数写入异常问题解决方法

OpenCV 3.1 imwrite()函数写入异常问题解决方法最近配置了OpenCV3.1版本&#xff0c;按照2.x的习惯写了一个保存图片的代码&#xff08;测试证明该代码在2.4.11下运行正常&#xff09;&#xff0c;但是在使用imwrite()函数的时候出现了异常。 代码如下&#xff1a;#include <…

测试开发——搭建一个简单 web服务(flask框架基础)项目实战

搭建一个简单 web服务-flask框架一、什么是wsgi?二、搭建一个简单 web服务三、扩展四、请求加参数的情况五、安装flask一、什么是wsgi? wsgi是webserver和application的传话筒&#xff0c;起桥梁通信的作用。 二、搭建一个简单 web服务 # coding:utf-8# 步骤&#xff1a;…

高效阅读论文

写论文做研究的时候少不了要看论文&#xff0c;但是很多时候看过同类的论文之后发觉什么也没记住&#xff0c;本文将有三位牛人想大家分享他们在阅读论文的一些技巧&#xff0c;希望对大家有用。科研牛人一&#xff1a; 从Ph.D到现在工作半年,发了12 篇paper, 7 篇first author…

【文章】七不出,八不归,原来是这个意思

春节临近&#xff0c;出行的人们越来越多。有句老话儿叫“七不出&#xff0c;八不归”也开始被大家提及起来&#xff01;那么&#xff0c;究竟什么是“七不出&#xff0c;八不归”&#xff1f;这句话到底有没有道理呢&#xff1f; 老话说“七不出&#xff0c;八不归”&#xff…

❤️ 跟我一起用python追到女朋友!❤️

时间过得真快&#xff0c;昨年520写了一个表白代码 点击此处 哈哈哈 &#xff0c;现在看来还蛮好看的&#xff01;哈哈哈&#xff0c;我专业帮人追女朋友&#xff0c;心想两玩得超好的同学&#xff0c;都是我帮忙追的哈哈哈&#xff0c;要是有粉丝需要我帮忙出谋划策&#xff0…

VGG网络结构(一)

刚开始接触深度学习、卷积神经网络的时候非常懵逼&#xff0c;不知道从何入手&#xff0c;我觉得应该有一个进阶的过程&#xff0c;也就是说&#xff0c;理应有一些基本概念作为奠基石&#xff0c;让你有底气去完全理解一个庞大的卷积神经网络&#xff1a;本文思路&#xff1a;…

测试开发——flask快速入门小基础

这几天看群里面的大佬基本上个个被逼相亲&#xff0c;可爱小娟娟还一天相四次&#xff08;简直了&#xff09;&#xff0c;我们程序员也是很帅的很美的&#xff0c;其实我们的头发也挺多的哈哈哈哈&#xff08;至少我身边的程序员挺多头发的&#xff0c;当然我linux老师头发有点…