运用Appium 实现添加微信好友自动化

本文为原创文章,如需转载请注明出处.  

 

任务:实现批量添加微信好友自动化。

 

任务分析:1.首先要实现添加单个好友步骤自动化。

              2.实现脚本读取Excel里的值。

              3.参数化好友电话号码或者昵称。

          PS:代码采用POM(Page Object Model)便于后续维护

 

数据准备:将要加好友的电话号码或者昵称存进Excel

 

环境与平台搭建1. JS-Mocha-WebdriverIO-Appium-Android

                       2. appiumVersion1.6.2

                       3. platformName’android’

                       4. platformVersion: ‘5.1.1’

                       5. weChatVersion: ‘6.3.31’

 

具体步骤:

  1. 首先要实现添加单个好友步骤自动化。

          uiautomatorviewer查看添加好友步骤各个元素的定位标识符。在写之前一定要将各个页面的元素先命好名。我发现,提前命名能提高代码效率。

                     

 

                

 

      2.实现脚本读取Excel里的值。这里我用到的库是xlsx.基本用法如下

  • 用 XLSX.readFile 打开 Excel 文件,返回 workbook
  •  workbook.SheetNames 获取表名
  •  workbook.Sheets[xxx] 通过表名获取表格
  • xlsx.utils.sheet_to_jsonexcel返回的值变为json格式

      3.参数化好友电话号码或者昵称

       结合第2点。取出单元格的值重新放进一个新的数组里。此后通过forEach方法就可以轻松实现参数化了。

   这里必须要强调的一点是,excel返回的第一行的值为jsonheader

   我将第2,3点封装成了一个函数。下文调用的wrapperFunctions.loopColumnValue()就是这段。

   

 

吧唧了这么久,终于上成品了。都是点点点。。。

      

请注意:上述代码只考虑了能正确添加好友的路径。关于没有搜索到相关好友的negative test cases 没有在这里覆盖到。有需要的朋友们,可以在实战中完善它。

 

 

 

 

 

   

 

 

 

 

 

 

 

   

转载于:https://www.cnblogs.com/chaseHard/p/6202803.html

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

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

相关文章

pdf.js浏览中文pdf乱码的问题解决

由于项目中需要支持移动设备在线浏览pdf,苹果还好,天生支持,但是安卓中就不行了,需要第三方组件的支持。 这里就找到了pdf.js,由于pdf数据太多,开始的时候没法一一测试,所以随便测试打开了几篇没…

【效率专精系列】善用API统一描述语言提升RestAPI开发效率

团队内部RestAPI开发采用设计驱动开发的模式,即使用API设计文档解耦前端和后端的开发过程,双方只在联调与测试时耦合。在实际开发和与前端合作的过程中,受限于众多因素的影响,开发效率还有进一步提高的空间。本文的目的是优化工具…

数据包提取文件_航测怎样高效提取无人机POS航点数据

无限创新工作室研发的POS数据记录仪是一款采集飞控POS 数据并管理的设备,它将飞控 POS 点数据进行记录,形成单独的POS 数据记录TXT 文本,并独立存储于内存卡,可通过USB、U 盘或内存卡形式对数据进行读取。通过对相机进行拍照控制和…

开始时间小于 结束时间 js_DNF分享红包开始及结束时间 红包有什么奖励相关介绍...

[闽南网]DNF分享红包分享快乐时间从2019年的1月3日开始到1月21日前结束,活动期间玩家每天登录游戏可以得到一个新年红包,使用后可以为同一个频道的玩家送去祝福,根据送出红包的数量得到不同的奖励。(dnf幸运饺子铺活动)(DNF95版新副本攻略)本…

SQL 邮件配置篇

在我们运维工作中,经常要对备份,ETL等作业进行监控,这时我们需要用到SQL SERVER自带的邮件服务器,其原理,我在这么里不多说,直接来实战,下面是我对服务器配置源码,分享给大家&#x…

汽车之家的安全框架,是如何从0到1搭建的?

“别人家的安全”是安全威胁情报(微信ID:Threatbook)近期推出的一档专栏。 合规、管理、构建、应急……安全问题千千万,层出不穷。我们没办法给出这些问题的标准答案,但我们可以用Case Study的形式,让你看看…

《网络空间欺骗:构筑欺骗防御的科学基石》一1.1 主动网络空间防御中网络空间抵赖与欺骗的视图...

1.1 主动网络空间防御中网络空间抵赖与欺骗的视图 本文讲的是网络空间欺骗:构筑欺骗防御的科学基石一1.1 主动网络空间防御中网络空间抵赖与欺骗的视图,将抵赖与欺骗纳入标准操作规程(SOP):随着攻击技术的不断演进,网…

揭开勒索软件的真面目

一、前言 2013年9月,戴尔公司的SecureWorks威胁应对部门(CTU)发现了一种名为“CryptoLocker”的勒索软件,它以邮件附件形式分发,感染计算机并加密近百种格式文件(包括电子表格、数据库、图片等)…

Java中的阻塞队列-LinkedBlockingQueue(二)

原文地址:http://benjaminwhx.com/2018/05/11/%E3%80%90%E7%BB%86%E8%B0%88Java%E5%B9%B6%E5%8F%91%E3%80%91%E8%B0%88%E8%B0%88LinkedBlockingQueue/ 在集合框架里,想必大家都用过ArrayList和LinkedList,也经常在面试中问到他们之间的区别。…

碳钢腐蚀速率计算公式_镁合金轮毂螺栓连接的电偶腐蚀行为

环境污染和能源短缺促使日益发达的汽车工业大力推进构件轻量化,镁合金是最轻的结构材料之一,构件采用镁合金制造可以在减重的同时不降低结构强度,受到汽车工业的青睐。轮毂作为汽车的主要组成部件,其轻量化是汽车节能减排的有效途…

避免人为灾难:盘点数据中心里十大愚蠢行为

对于企业运营,数据中心从设计、部署等各个环节都有极其严格的规范,保证简单的“题目”不出错也需要企业IT管理人员的智慧,在数据中心任何一个小错误往往会带来巨大灾难。数据中心从设计、部署、测试、运行、运维等各个环节都不能有任何的疏忽…

leetcode1039. 多边形三角剖分的最低得分(动态规划)

给定 N,想象一个凸 N 边多边形,其顶点按顺时针顺序依次标记为 A[0], A[i], …, A[N-1]。 假设您将多边形剖分为 N-2 个三角形。对于每个三角形,该三角形的值是顶点标记的乘积,三角剖分的分数是进行三角剖分后所有 N-2 个三角形的…

thinkcmf 横向排列数据_利用python进行数据分析之数据清洗规整

1.处理缺失值数据使用dropna()时,注意里面参数axis、how、thresh的用法使用fillna()时,注意里面参数value、method、inplace、limit的用法2.数据转换去重data.drop_duplicates(keeplast)#注意keep的用法映射map()针对的是一维数组…

v$asm_diskgroup中state的说明

1.使用oracle账号连接数据库,查看v$asm_diskgroup 2.使用grid账号连接ASM实例,查看v$asm_diskgroup 3.官方v$asm_diskgroup关于state的解释 https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/V-ASM_DISKGROUP.html#GUID-5CF77719-7…

Python笔记 【无序】 【五】

描述符 将某种特殊类型的类【只要实现了以下或其中一个】的实例指派给另一个类的属性 1.__get__(self,instance,owner)//访问属性,返回属性的值 2.__set__(self,instance,value)//将在属性分配【即赋值】中调用,不返回任何内容 3.__delete__(…

化工图纸中LISP_化工设备厂参展模型设计制作

最近这个案子是受某化工设备企业委托做四套设备模型 用来参加展会在模型制作过程中,这类案例经常遇到。但是客户所提供的CAD图纸,往往是实物尺寸在进行缩放的过程中常会造成过薄和过于精细的情况出现眼下技术小哥就遇到这类情况让我们先看看客户提供的C…

社交大佬们的数据“大”在哪里?

文章讲的是社交大佬们的数据“大”在哪里,“别说忙,没工夫看书,你那刷FB/朋友圈的工夫腾出来,保证每周啃下一本”,小编身边总充斥着这样的“训话”。 额,奈何我每天的工作离不开从社交媒体中获取信息&#…

mysql 多数据源访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码

之前写过一篇博客《SpringMybatisMysql搭建分布式数据库访问框架》描述如何通过SpringMybatis配置动态数据源访问多个数据库。但是之前的方案有一些限制(原博客中也描述了):只适用于数据库数量不多且固定的情况。针对数据库动态增加的情况无能为力。下面讲的方案能支…

菜鸟postman接口测试_postman 接口测试(转)

本文转载自testerhome;作者:xinxi1990 ;原文链接:https://testerhome.com/topics/18719;转载以分享知识为目的,著作权归原作者所有,如有侵权,请联系删除。postman使用创建用例集启动…

vb 数组属性_VB中菜单编辑器的使用讲解及实际应用

大家好,今天我们共同来学习VB中菜单方面的知识。VB中菜单的基本作用有两个:1、提供人机对话的界面,以便让使用者选择应用系统的各种功能;2、管理应用系统,控制各种功能模块的运行。在实际应用中,菜单可分为…