Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素

摘要:
如何使用appium打开任意一个应用程序:打开要测试的应用使用adb命令获取包名和界面名修改desired_caps字典中的appPackage和appActivity的参数2.模拟器第一个appium程序模拟器我们使用的是夜神模拟器,因为公司也在使用这款。
1. 真实机第一个appium程序

学完了前面的知识,也将环境搭建好了,接下来我们就正式开始appium的学习了。

在做app自动化的时候,我们肯定是针对某个产品、某个软件进行测试,那么我们一定是先让模拟器或真机帮我们打开这款软件才可以。所以接下来要学的就是如何打开某个应用程序。

启动步骤:

USB连接手机,开启调试模式

打开appium工具

创建python文件,使用下面代码

以下代码可以打开手机中的【设置】应用程序:

#coding:utf-8
importtime
importos
from appium importwebdriver
from selenium.webdriver.support.ui importWebDriverWait

PATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))

#初始化
desired_caps ={}
#使用哪种移动平台
desired_caps['platformName'] = 'Android'
#Android版本
desired_caps['platformVersion'] = '9'
#使用adb devices -l 查询
desired_caps['deviceName'] = '6EJ7N18604002958'
#包名
desired_caps['appPackage'] = 'com.android.settings'
#界面名
desired_caps['appActivity'] = '.Settings'
#连接服务器
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

time.sleep(5)

driver.quit()

成功启动后就会安装三个app,其中Appium Settings只需要安装一次,其他两个每次启动程序都需要重新安装,我正在想办法解决,从网上找到的方法都不适用于当前版本。

如果后期项目不是测试《设置》应用程序,而是测试《短信》应用程序那么怎么打开《短信》应用程序呢?如果后期项目测试的模拟器或手机不再是9的版本,而是10的版本呢?相关配置的信息都可以进行修改。

如何使用appium打开任意一个应用程序:

  1. 打开要测试的应用
  2. 使用adb命令获取包名和界面名
  3. 修改desired_caps字典中的appPackage和appActivity的参数
2. 模拟器第一个appium程序

模拟器我们使用的是夜神模拟器,因为公司也在使用这款。

安装和配置我看了一个CSDN大佬写的不错,我就不写了。

《模拟器的安装与配置》:https://blog.csdn.net/huangql517/article/details/89678550

打开qq,代码如下:

#coding:utf-8
importtime
from appium importwebdriver

#初始化
desired_caps ={}
#使用哪种移动平台
desired_caps['platformName'] = 'Android'
#Android版本
desired_caps['platformVersion'] = '5.1.1'
#使用adb devices -l 查询,当有多台设备时,需要声明
desired_caps['deviceName'] = '127.0.0.1:62001'
#包名
desired_caps['appPackage'] = 'com.tencent.mobileqq'
#界面名
desired_caps['appActivity'] = '.activity.SplashActivity'
#初始化
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

time.sleep(5)

driver.quit()

模拟器不会出现重复安装软件的情况,所以后面的案例全是使用模拟器,如果我找到了解决重复安装APP的方法,一定第一时间更新。

3. 查看元素

前面我们已经安装好appium Desktop(可视化界面),现在我们来了解下这款软件如何使用。

首先将软件修改成中文,便于我们使用。

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素第1张

对于我们初学者来说,不需要多余的配置,点击启动服务器即可。

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素第2张

这样就表示appium已经正常启动了, 然后我们点击右上角的放大镜

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素第3张

就进入了检查器会话窗口了

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素第4张

在这里输入启动参数

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素第5张

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素第6张

点击启动会话,就可以连接到设备了(当然设备要开启调试模式)

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素第7张

我们随便点击一个元素,右边就会显示元素的属性了

Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素第8张

免责声明:文章转载自《Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VCS仿真查看coverageLinux下防御DDOS攻击的操作梳理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

macOS软件推荐&避雷指南 让mac更像windows的装机必备软件

网络上有很多macOS软件推荐的文章,但是那些文章大部分有下面的问题: 没有结合使用场景 没有差评。从来不会说一个软件有什么缺点,是否稳定。 所以这篇文章就围绕下面2点展开: 安装哪些软件,可以让macOS的体验更加接近 windows 10。 同类型其他软件存在的问题,也就是标题中的“避雷”。毕竟软件好不好,全靠同行衬托。根据这个列表,你能快速排...

uniapp微信APP支付踩坑指南:报错errMsg: "requestPayment:fail errors"

  起因:uni-app微信app支付一直报错“errMsg“: “requestPayment:fail errors“,但是坑的是没有具体的原因,微信APP支付官方文档也很坑。我们看看有多坑:   返回结果-1,包含所有情况,至于什么情况,您自己猜去吧,唉~~   网上查了很多别人也是很多遇到这个问题,但是所说解决方案都无用,当然我们记录一下,也未尝...

基于Three.js、Go语言和MongoDB的免费开源的3D场景编辑器简介

ShadowEditor是一个基于Three.js、Go语言和MongoDB的免费开源的3D场景编辑器,支持Windows、Linux和Mac,最新版本是0.5.1。 主要功能 1. 跨平台:支持Windows、Linux和Mac;支持桌面版和Web版。 2. 支持多种3D格式:3ds, 3mf, amf, assimp(anim), awd, ba...

adobe reader安装失败时的解决方法

1、现在adobe reader 的官方网站取消了免在线安装方式的安装包的下载,导致下载下来的安装包只有1M多,然后只能连接互联网进行安装。 很容易发生在安装过程中提示“安装失败”,其实是下载失败的情况。这种问题可能由于国际互联网“不稳定”,基本很难解决。 2、使用第三方的软件安装方式进行安装。类似于软件管家的方式进行安装,发现安装后使用几十秒均发生软件崩...

react学习记录(一)

一、React是什么 声明式写法(强调结果,命令式编程强调过程) 组件化 一次学习,随处编写(多种应用场景,web程序,原生手机应用,系统应用,命令行工具) 二、为什么学习react 大公司加持-facebook 最流行,使用人数最多,被开发者喜爱 简单易懂 三、配置开发环境 官方脚手架工具Creat-react-app,类似vue-cli 脚手架工具:是...

PIP安装软件报错:“ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443)”

遇到问题: 最近PIP安装软件总是报错,报错提示如下: 1.WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vend...