4月初,班主任的某次周会议上,华华关切的问了一下:最近班主任们有什么难题吗?就是花费了你们大部分时间的工作!我们Python天团可以帮你们解决问题。

班主任大主管星星说:有。目前有一个大难题。我们每天都会对进群的学员登记他的真实姓名,联系方式,地址,目前薪资,期望薪资以及为什么会选择柠檬班~然后对于所有学生的缴费情况都会去腾讯进行查验,确保学生有上课的权限,并且每次会提前提醒分期的同学按时缴纳分期费用,防止逾期而没有上课的权限。

华华:这不是so easy的事情吗?

星星:不easy,首先学生并不是一天来的,而是每天不同的班级都会有不同的学员入学,那么就要分类整理。第二:每个学生的缴费信息方式不一样,有的是分期,有的是全款,有的是微信账号购买课程,所以为了把入群的qq和这些学费信息核对起来,真的是非常的困难!

华华:这好办,我帮你搞定(当然那是不可能的),会后找到了Python天团的主管:小简大佬。小简大佬,班主任团队最近遇到了一个比较繁琐的问题,就是统计学生的信息比较费时,可以帮忙用自动化搞定吗?

简佬(小简大佬的简称):好的呀,有需求吗?我们团队的可优和雨泽可以帮忙做这个事情,你把需求搞定,我们最迟一周内交付,毕竟我们还有自动化测试和测试开发以及公开课的任务在身。 有Python天团的强有力支撑,那么就可以开始行动了!

PART 1:整理需求

于是:华华联合星星,疏导了班主任的工作流程以及数据来源,整理出了一份需求。(各位亲爱的VIP学员们,你们的服务都来自于班主任的不辞劳苦!)

关于学员信息统计:

包含了如下图所示的一些信息

其中QQ来自QQ群,微信订单来自柠檬班内部的CRM系统,剩余的信息来自柠檬班的学员信息管理后台(由学员在柠檬班提供的表单上自行填写),经过几轮分析,确定数据来自这3个不同的地方。

关于学生缴费信息统计:(这关系到学员是否有上课权限,是否会错过上课时间,非常重要!)

但是这个信息会有2个问题: 1)如果学生是QQ报名的,那么可以直接根据QQ去统计信息。

2)如果学生是微信报名的,那么需要根据加入班级群的QQ去CRM系统里面找到对应的微信号,然后进行QQ微信匹配后再去腾讯课堂查询,比如说Python17群学员的QQ是:1248***816(保护学生隐私,匿了中间三位数),是通过微信报名的,那么在CRM系统里面的微信账号是:144115213097282684,我们在腾讯课堂后台只能通过这个微信号才能唯一查询到支付信息,如下所示:

3)如果学生是分期的,那么还要点击到分期的详情页去查看,分期的支付状态并登记好之后几期分期的支付时间,好定期对学员进行提醒,以免逾期。比如说Python17期某位学员的QQ是:792***306,那么查询到分期订单如下所示:

我们需要点击“分期明细”,进入到分期的详情页里面去,才能看到学生的明确支付信息以及每一期的最后支付时间,如下所示:

PART 2:编写脚本

需求整理完毕后,图文并茂的交给了简佬,当然part1部分的是简单的描述,尽量让大家可以看的明白点,比较复杂的就不写出来了! 简佬就开始分发任务:可优大佬负责学生缴费信息的统计脚本,雨泽大佬负责学员信息统计脚本,至于具体的实现过程,当然要跟大家分享一下!由华华来进行文字整理,因为华华在这个过程中充当了班主任和Python天团的桥梁和需求整理者。

关于学员信息统计的脚本实现方式:

1:首先从对应班集体的QQ群里导出学员的Q信息 2:然后从柠檬班内部的CRM系统里面导出学员的订单信息 3:两部分信息都保存至xlsx的文件里面,然后利用Python的openpyxl第三方库对两份数据进行比对,对学员是微信报名的信息与QQ进行匹配,最后完成的第一步效果如下所示:

4:然后根据学员的QQ信息,利用Python的Python-mysql-connector第三方库进行数据库查询,获取到学员的详细信息,如下所示:

脚本的话~~也截图小小的看看,部分代码,并不完整哦!学完柠檬班的Python自动化,你也可以!

关于学员缴费信息统计的脚本实现方式:

1:利用学生信息统计的结果进行查询,如果QQ查询不到,就用QQ对应的微信号去进行查询

2:如果是全款,那么就直接登记信息,如果是分期,就登记分期链接,后期再单独进行分期详细信息的统计与登记。

3:以上两步是非常清晰的,实现方式无外乎就是web页面元素的定位,方式有多种,xpath css或id,但是这个脚本,有两个亮点要跟大家分享下,希望大家以后遇到这个问题也可以用类似的方法去处理。

亮点一:查询之前先固定查询的条件

这里有两个显式的条件需要固定,一个是时间,我们只查询2019年1月1号开始的订单,那么这里就设计到日历的固定于选择:

页面的HTML源码如下所示:

我们可优大佬实现的方式是:

另外一个需要固定的条件是:课程包名称,这个是非selected控件,经过观察是支持模糊查询,并且需要从模糊查询的结果里面选择对应的下拉元素才可以生效的! 页面的HTML源码如下所示:

我们可优大佬实现的步骤是:先输入查询的课程条件(尽量可以唯一确定到唯一一个元素,然后选择下拉框的第一个元素,第0个元素显示的是“”全部“”),比如我们输入的是:python全栈自动化测试工程师第7-19期,那么下拉框就会显示可以选择的课程包名称,实现代码如下:

效果如下所示:

我们通过代码选择下拉列表的第一个元素,然后神奇的事情就发生啦!后面出现了隐藏元素,班级!

如下所示:

那么接下来就是选择班级,但是我们的查询班级下拉框也是非selected的,而且不支持输入只能从下拉元素中选择,页面的HTML源码如下所示:

我们实现的代码如下所示:

至此查询的难题已经全部实现,除了这里有点浪费时间,其他的都非常简单!

亮点二:利用正则匹配分期的数据

学习自动化,不仅仅要学习Python编程能力还需要学习其他的知识,比如说正则!而且这些在柠檬班自动化的授课里面全都有!这里截取部分代码,仅供参阅!

这个过程从构思到实现,都是在工作日时间实现的,5月1号,此项目正式上线!并且已经部署到班主任专用的电脑上的jenkins上!这样可以定时的去跑任务啦!班主任也可以开始利用Python来武装自己了!这个年代,不学点自动化,都不好意思说自己是Python班的班主任啦!

如果最近你发现班主任们变美了,心情也美美哒,每天跟你说话都是元气满满的,那么一定是因为Python给他们工作减负,他们多了时间化妆和休息!

有兴趣的同学可以多多关注柠檬班的Python自动化课程,可以找专业的Python自动化辅导员来领取专业的学习资料! 柠檬班等你很久了,特意为你准备了一波自动化测试秘籍,助你突破薪资技能瓶颈!

包括 Jmeter、Python编程、Selenium、unittest+Http技术+ddt;appium自动化;还有自动化面试题,以及项目案例分享。有兴趣的可以加我哦,免费送!

Python如何去实际提高工作的效率?也许这个会有用!的更多相关文章

  1. 学python+django去北京找工作,靠谱吗?

    有些朋友说,自己的学习能力还可以.倾向于python加框架,如django,python本来就会一些.不太了解北京公司的情况,想知道现学的python+django在北京找到工作有多少可能性. 要想知 ...

  2. Windows 下有什么软件能够极大地提高工作效率

    Windows 下有什么软件能够极大地提高工作效率?修改 可以推荐一些好的应用或者有趣的程序,能提升工作效率或者能让人眼前一亮的.修改 举报1 条评论 分享 • 邀请回答   按票数排序按时间排序 2 ...

  3. 程序员提高工作效率的15个技巧【Facebook】

    程序员提高工作效率的15个技巧[Facebook] 作者: habadog 日期: 2015 年 02 月 13 日发表评论 (0)查看评论 程序员提高工作效率的15个技巧[Facebook] 1,D ...

  4. 巧用Excel提高工作效率

    程序员如何巧用Excel提高工作效率 主要讲解下Excel中VLOOKUP函数的使用,相比于上一篇中的内容,个人觉得这个相对高级一些. 1.使用背景 为什么会使用到这个函数呢,背景是这样的,有两个系统 ...

  5. 怎样使用ListView实现一个带有网络请求,解析,分页,缓存的公共的List页面来大大的提高工作效率

    在寻常的开发中常常会有非常多列表页面.每做一个列表页就须要创建这个布局文件那个Adapter适配器文件等等一大堆与之相关的附属的不必要的冗余文件. 假设版本号更新迭代比較频繁,如此以往,就会使项目pr ...

  6. 使用并行ssh提高工作效率

    我们经常需要ssh到多个主机上执行相同的命令,为了提高效率,我们通常会自己写个脚本,循环遍历执行我们的命令,比如: for host in `cat hosts.txt`;do ssh usernam ...

  7. 拒演"拼命工作"的苦情戏,如何更聪明地提高工作效率?

    前几天PDD的事情又把互联网打工人的工作状态推向了大众视野,引起了大家的口诛笔伐.但是目前来看这种愤慨终究是暂时的,作用甚微.在大环境短时间无法改变的前提下,想想如何应对,或许比在网上愤愤不平破口大骂 ...

  8. Android Studio in OSX 提高工作效率的快捷键

    前言 本篇文章参考了<倍数提高工作效率的Android Studio>一文,快捷键基于OS X系统. OS X Yosemite 10.10.5 Android Studio 1.3.1 ...

  9. 倍数提高工作效率的 Android Studio 奇技

    来源:JeremyHe 链接:http://zlv.me/posts/2015/07/13/14_android-studio-tips/ 这是从Philippe Breault的系列文章<An ...

随机推荐

  1. 二分查找java实现

    二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 二分查找思路非常简单,由粗暴的遍历查找改为 ...

  2. 回溯法 | 旅行商问题(TSP问题)

    学习链接: 回溯法解旅行商问题(TSP).贪心算法:旅行商问题(TSP) 今天早上做了无数个梦,然后被紧紧地吸附在床上.挣扎一番后爬起来,已经是9点了.然后我开始研究旅行商问题. 在一个无向图中找到一 ...

  3. javascript中的作用域和变量提升

    js的运行主要分两个阶段:js的预解析和运行,预解析阶段所有的变量声明和函数定义都会提前,但是变量的赋值不会提前.

  4. php获取客户端公网ip代码

    <?php /*如果是本地服务器获取客户端的ip地址是 127.0.0.1 如果是域名服务器获取客户端的是公网ip地址*/ function get_client_ip() { $ipaddre ...

  5. redis为何单线程 效率还这么高 为何使用跳表不使用B+树做索引(阿里)

    如果想了解 redis 与Memcache的区别参考:Redis和Memcache的区别总结 阿里的面试官问问我为何redis 使用跳表做索引,却不是用B+树做索引 因为B+树的原理是 叶子节点存储数 ...

  6. 【Qt开发】Qt5.9安装

    Qt5.9安装包整合了全部资源,包括所有可选的不同版本及编译器,不用再单独下载,虽然大了点,但方便了很多.有时可能需要用VS搭配Qt来使用,但有时又想用QtCreator+mingw or QtCre ...

  7. git安装和使用配置

    1.简介 Git是一个开源的分布式版本控制系统,能用于快速高效地处理任何或小或大的项目,它是Linus Torvalds为了帮助管理Linux内核开发而开发的一个源码开放的版本控制软件. 2.Linu ...

  8. 源码编译安装使用glusterfs+heketi安装使用

    注:使用源码安装的原因主要是使用yum安装glusterfs服务端时出现一些依赖库问题 准备3台glusterfs服务器(官方也建议至少3台,防止发生脑裂),并在各个服务器的/etc/hosts下面添 ...

  9. 029 ElasticSearch----全文检索技术04---基础知识详解02-查询

    1.查询 (1)基本查询 基本语法: GET /索引库名/_search { "query":{ "查询类型":{ "查询条件":" ...

  10. 发现一个企业微信第三方应用开发的疑似BUG

    1.企业微信两个账号A(超级管理员),账号B(分级管理员),账号B具有创建应用与小程序权限.2.账号B添加一个第三方应用后(创建后能看到第三方应用),使用下图接口登录时回调的agent一直为空,3.超 ...