Android Poco初始化时,不大起眼但可能存在坑点的参数们

news2024/11/6 9:44:00

1. 前言

进行Android poco初始化的时候,可能大多数同学都是直接在Poco辅助窗里选择Android模式,然后选择自动帮我们补充poco的初始化脚本:

在这里插入图片描述

这种情况下,我们大多数都不会关注初始化的参数。但如果我们不了解这些参数的含义,也非常有可能在一些特殊情况下踩到一些坑。下文我们就从一次入坑经历说起吧~

2. 入坑分享:没有传poco初始化的参数

有一次在给Android设备初始化poco时,小A采用了下述的方式:

dev1 = Android('127.0.0.1:7555')

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco1 = AndroidUiautomationPoco(dev1)

sleep(1.0)
poco1("计算器").click()

然后在生成报告的时候,小A发现,报告没有Poco点击计算器的步骤,而只有1张截图,截图上也没有标注控件点击位置:

在这里插入图片描述

经过一顿排查之后,才发现,原来他这里没有传任何的Poco初始化参数,之后他把参数加上:

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco1 = AndroidUiautomationPoco(dev1,use_airtest_input=True, screenshot_each_action=False)

报告就能正常显示了:

在这里插入图片描述

那这2个Android poco的初始化参数,究竟起到怎样的作用呢?我们下文详细说明下。

3. use_airtest_input

use_airtest_input=True是指,使用Airtest去执行点击操作,好处是,会在日志里面记录一条log记录,这样生成报告时,就能在报告上显示这个点击记录。

如果初始化Android poco时,不传入这个参数,默认use_airtest_input=False,则不使用Airtest去执行点击操作,而是调用Android接口去点击,这时候不会在日志里面记录一条点击的log,所以会导致报告里面丢失这个点击步骤。

所以,如果同学们不在意log内容,或者无需生成测试报告,这个参数可以不传。

但如果同学们需要生成测试报告,在初始化Android poco时,还是需要把use_airtest_input=True这个参数传上去。

4. screenshot_each_action

screenshot_each_action是指,是否开启每个poco步骤的截图。我们也可以从1个对比测试,来看出这个参数的效果:

# 关闭每个步骤的截图操作
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=False, screenshot_each_action=False)

sleep(1.0)
poco("计算器").click()

在这里插入图片描述

# 开启每个步骤的截图操作
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=False, screenshot_each_action=True)

sleep(1.0)
poco("计算器").click()

在这里插入图片描述

至于,为什么当初始化时,指定use_airtest_input=True,且screenshot_each_action=False 时,仍然会有截图,这是因为使用了Airtest的点击,Airtest点击是默认开启截图的:

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

sleep(1.0)
poco("计算器").click()

在这里插入图片描述

5. 小结

本文详细讲述了,进行Android poco初始化时,传参和不传参的差别,以及可能带来的坑点。也跟同学们解释了use_airtest_inputscreenshot_each_action这两个参数的作用,后续我们会跟大家分享更多关于Airtest报告的内容~

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

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

相关文章

Spring之@RequestMapping、@GetMapping、 @PostMapping 三者的区别

我的理解:其实RequestMapping、GetMapping、 PostMapping 三者就是父类和子类的区别,RequestMapping是父类,GetMapping、 PostMapping为子类集成了RequestMapping更明确了http请求的类型 分析三者的源码: RequestMapping .class&…

C#教务管理大数据平台系统源码

校务管理系统是专门针对幼儿园、培训学校的业务应用而设计研发的一款行业应用软件。校管家校务管理系统融入先进的协同管理理念,运用领先的信息化、网络化处理技术,结合丰富的教育培训行业经验,切实有效的解决幼儿园、培训学校日常工作中的关…

[附源码]计算机毕业设计-菜篮子系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

KVM虚机添加磁盘

KVM虚拟机添加磁盘两种方法: 1、添加虚拟磁盘文件 2、添加物理磁盘 需求 1、/kvm/kvms目录是我们KVM磁盘镜像集中管理的位置,我们需要在/kvm/kvms下给ceph1虚拟机创建名为ceph1-vdb.qcow2的磁盘文件,大小为80G,作为ceph1的vdb磁盘…

Python和labview先学哪个

前言 在这之前,先跟大家分享个身边的故事。 大学同学小宏,在北京一家电子设备公司做运维,上周四刚被升为运维部经理,薪资涨了35%。 但你一定想不到,他平时从不加班,甚至还经常迟到。 (文末送…

Qt入门总结

文章目录Qt一、各文件基本概念1、main.cpp文件2、XXX.pro文件3、XXX.h文件二、基本知识1、命名规范2、快捷键三、入门操作1、添加按钮2、重置窗口大小3、设置窗口标题4、设置固定的窗口大小5、对象树6、添加源文件/头文件7、窗口坐标系四、信号与槽1、让按钮附带功能2、自定义信…

浅谈affine_trans_point_2d与affine_trans_pixel

先看下两个坐标图谱: 变换前: 变换后: 我们根据1号点和9号点前后的关系,计算变换后其他点的坐标:这其实就是根据MARK点进行定位的原理 halcon代码: 执行结果: 我们发现,两种变换方…

湘江新区:金融活水赋能实体经济

湘江早报全媒体记者 黄荣佳 通讯员 易芳 吴硕 4月26日,艾布鲁环保在创业板首发上市; 10月28日,“国产操作系统第一股"麒麟信安敲响上市钟声,成为今年全省第一家在科创板上市的公司; 11月24日,…

临床信息去冗余 临床数据处理分组不同的GSE数据集有不同的临床信息,不同的分组技巧

最近,我发现学徒在学习GEO数据挖掘的过程中,遇到了第一个也是至关重要的一个难题就是对下载后的数据集进行合适的分组,因为只有对样本进行合适的分组,才有可能得到我们想要的信息。但是不同的GSE数据集有不同的临床信息&#xff0…

SpringCloud全系列知识(4)——统一网关Gateway

统一网关Gateway 一 认识网关 1.网关的功能 1.身份认证和权限校验 2.服务路由&#xff0c;负载均衡 3.请求限流 2.技术实现 Gatewayzuul 二 Gateway的使用 1.搭建网关服务 1.创建新的Module,引入 Gateway 和 Nacos 服务发现依赖。 <!--nacos服务发现依赖-->…

天宇优配|研判明年下半年投资机会或更大 险资看好“安全”与“发展”

上海证券报记者昨日获悉&#xff0c;多家稳妥资管公司已经拟定2023年出资战略&#xff0c;跟着本年以来多项稳经济方针逐步落地&#xff0c;险资遍及看好下一年经济复苏带来的商场出资时机。 权益出资方面&#xff0c;险资以为&#xff0c;当时股票商场估值处于前史较低水平&am…

Java语言有多少优势(总结版)

现在有越来越多的新技术工具、新语言涌现&#xff0c;面对林林总总的语言&#xff0c;总会有人问&#xff1a; 这么多语言应该先学哪一种&#xff1f; 什么语言值得我们长时间地学习&#xff1f; 学完之后职业发展前景大吗&#xff1f; 那么&#xff0c;我给出的答案是Java …

C++手敲Roberts_Prewitt_Sobel实现阈值分割

使用OPENCV,编写代码&#xff0c;学习图像二值化算法&#xff0c;以及边缘检测算法&#xff0c;进行图像的分割。 下面主要介绍Robert算子的实现过程&#xff1a; ①任务分析 调入并显示图像&#xff1b;使用Roberts 算子对图像进行边缘检测处理&#xff1b; Roberts 算子为…

【Scala专栏】字符串与集合

本文索引一、String/StringBuilder二、Array三、List四、Set五、Map六、TupleScala中的字符串在本质上就是Java的字符串String&#xff0c; 所以在用法上除了要符合Scala的语法以外&#xff0c;其他方面是如出一辙的。   Scala中的集合分为可变和不可变&#xff0c;默认声明…

内核编译 --- 链接器

先回顾一下编译知识 将一个程序的编译分为两个大的阶段&#xff1a;编译阶段和链接阶段 编译阶段又分为三个步骤&#xff1a;预编译&#xff0c;编译&#xff08;此编译和上面程序的编译不是同一个意思… 上面那个是指宽泛的编译&#xff09;和汇编 编译阶段经过预编译、编译…

笔记 vue3如何引入iconfont

本次采用的免费字体图标是iconfont 1、点我进入官网 2、具体流程 1、 需要什么图标在上面搜索框查找&#xff0c;然后加入购物车&#xff0c;选完后再点右上角的购物车 2、添加到项目中&#xff0c;有项目就选项目添加&#xff0c;没有就创建项目 3、确定后进入你的项目(可以…

契约测试理论篇

契约测试理论篇 目录契约测试理论篇什么是契约测试契约测试存在一些的问题契约测试的主要实践总结随着 Web 系统的大规模发展&#xff0c;Web API 已经成为了一种广泛使用的技术&#xff0c;再加上微服务和云系统的普及&#xff0c;Web API 的数量呈几何增长。比如在一个大型 W…

pandas 将一行拆分为多行,将多行合并为一行

需求描述 在今天的数据需求&#xff0c;现在要统计各个场景下的类目种类数&#xff0c;并列出对应都有哪些类目。 现在面临的问题是&#xff1a;每个客户的应用场景不同&#xff0c;购买的类目也有多种。 &#x1f39e;&#x1f39e;&#x1f39e;&#x1f39e;&#x1f39e;&…

postgres源码解析38 表创建执行全流程梳理--4

本文讲解非系统表的创建逻辑&#xff08;[<fontcolor0000dd>普通表和索引表]&#xff09;&#xff0c;其入口函数为heap_create&#xff0c;内部公共接口函数为RelationBuildLocalRelation和RelationCreateStorage相关知识回顾见&#xff1a; postgres源码解析38 表创建执…

宝宝入托,爸妈要避开这5种心态

孩子入托&#xff0c;父母也要做好心理准备&#xff0c;尤其需要避免以下5种常见的、不良心理状态&#xff0c;否则会加重孩子入托的困难度。 01.“生离死别式”的入托状态 即每次送孩子入园&#xff0c;就像一场生离死别。宝宝屋里哭&#xff0c;家长屋外哭&#xff0c;最后多…