广东电网有限责任公司梅州供电局 广东省梅州市 514000
摘 要:即时通信是基于网络的最流行的实时通信方式之一,其最基本的形式是聊天,并能集视频、语音等功能于一体,是信息时代之后的全新的通信方式。目前,随着即时通讯系统向综合通信媒体、企业和教育应用的发展,该领域的研究越来越重要和广泛。
关键词:即时通讯;软件平台;流程;自动化软件;框架设计
目前,中国的互联网技术已进入高速发展期,即时通讯已成为主流的网络通讯工具。本案例就是模拟邮件发送软件,开发一个包含文字、文件传输等功能的邮件发送的软件。
一、项目情况简介及风险管控措施
营销与计量系统,作为管理信息系统却缺乏个性化的预警催办功能。用户为了及时发现急需处理的问题或业务,只能靠人工去分析识别问题。而目前主流的流程机器人,要么只是将问题暴露并把需要关注的结果记录到Excel等日志中,最后一步仍需依靠用户主动开展;要么就是每次都要把企业通讯软件信息发送功能按用户需求重做一遍,难以复用且运行过程容错率低,这些都导致相关问题难以及时得到处理。目前没有基于企业通讯软件的自动化信息发送工具。
本项目团队将基于Python自主开发“自动化企业通讯软件信息发送工具”,将信息发送流程固化与分离,同时便于人工或流程机器人调用,实现只要运行工具,它就在指定时间,登陆并打开指定用户的企业通讯软件客户端,按指定频率,将整理到Excel的待通知文本自动、批量地发送给对应收信人或收信群的效果。
一方面,工具能够很好地与流程机器人对接,实现基于企业通讯软件的便捷且安全的通知功能,达到及时而有针对性的群发效果。另一方面,它也能按用户需要,自动登陆指定账号并按预设时间发送信息到对应用户或群聊。目标用户接收到预警信息,能够及时关注工单超时、终端离线、数据异常等问题,从而更好地掌握营销系统工单流转进度、把控计量系统设备运行状态。
本项目意在提高生产工作的流转运作效率,是一套内网使用的工具,不涉及数据存储,也不涉及电网、人身、设备、作业风险,同时工具不存在数据的上传与下载,不考虑泄密问题,不存在网络安全风险。
二、关键点及创新点
(一)关键点:
1、基于pyautigui的图像识别与桌面元素的精准定位;
2、Excel文件的读取与相应处理。
创新点:开创性地将企业通讯软件信息发送流程与流程机器人的业务操作相独立,能够适用于各种条件(如按用户发送特定内容、按群聊发送特定内容、按指定时间和周期运行程序、各用户均能让工具登陆自己的企业通讯软件完成信息发送),提高通用性,便于二次应用开发。
自动化企业通讯软件信息发送工具基于python语言构建,主要使用pyautogui、openpyxl、sched模块,可按预设时间和频率自动模拟用户登陆,并读取指定Excel,再根据图像、图标或坐标实现精准定位,进一步模拟键盘与鼠标操作完成企业通讯软件信息发送。工具同时会保存发送报告,供用户查看发送情况。
(二)应用前景
能够很好地与流程机器人配合,也能按用户需要,自动登陆指定账号并按预设时间发送信息到对应用户或群聊。
(三)预期成果
本项目团队将基于Python自主开发“自动化企业通讯软件信息发送工具”,将信息发送流程固化与分离,同时便于人工或流程机器人调用,实现只要运行工具,它就在指定时间,登陆并打开指定用户的企业通讯软件客户端,按指定频率,将整理到Excel的待通知文本自动、批量地发送给对应收信人或收信群的效果。
(四)详细设计
1、实验目标
基于Selenium+Python的自动化测试,实现qq邮箱登录并发送邮件。
2、环境配置
(1)下载并安装anaconda
①下载网址:https://www.anaconda.com/products/inpidual
②配置环境变量:安装过程中记得勾选Add PATH选项 。
(2)使用pycharm创建工程
(3)使用pip安装selenium : pip install selenium
(4)配置webdriver
查看谷歌浏览器版本
根据对应的版本选择相匹配的webdriver,网址为:http://chromedriver.storage.googleapis.com/index.html
运行conda env list
可以看到项目在anaconda环境中的位置,找到它。
将下载好解压出来的chromedriver.exe拷贝到上一步找到的文件夹中,即anaconda环境中的项目目录文件夹:
(5)运行以下程序,可在控制台打印网页源码
经过以上步骤,测试环境基本配置完成,接下来进行测试实验。
3、基于selenium自动登录qq邮箱并发送邮件
(1) 获取网页基本信息
运行以下代码:
1.from selenium import webdriver
2. import time
3. chrome = webdriver.Chrome()
4. chrome.get('https://mail.qq.com/')
或者直接手动打开浏览器并输入qq邮箱地址。
浏览器打开QQ邮箱登录网址:QQ邮箱登录地址为:https://mail.qq.com/
审查元素:F12并选中输入框
(2) 使用python程序完成登录操作
但是使用指导书中代码,提示:
写法更新了,所以根据提示更新代码。
并且现在的qq邮箱是优先显示扫码登录,所以还需要一步点击操作将登录组件改为账号密码登录:
登录代码(完整):
运行上述代码,可以成功登录自动邮箱了,注意将账户密码改为自己的。
(3) 登录邮箱后,自动发送邮件
审查元素,写信操作:
进入写信页面,审查表单元素:
可以看到各输入框id分别为to、subject,正文部分,值得注意!正文输入部分位于另一个iframe中!
所以要注意切换iframe后,再进行对应下面元素的操作。
本项目完整代码:
成功发送邮件,实验完成。
四、总结
营销与计量系统,作为管理信息系统却缺乏个性化的预警催办功能。用户为了及时发现急需处理的问题或业务,只能靠人工去分析识别问题。而目前主流的流程机器人,要么只是将问题暴露并把需要关注的结果记录到Excel等日志中,最后一步仍需依靠用户主动开展;要么就是每次都要把企业通讯软件信息发送功能按用户需求重做一遍,难以复用且运行过程容错率低,这些都导致相关问题难以及时得到处理。目前,没有基于企业通讯软件的自动化信息发送工具。
参考文献:
[1]李伊林,傅小英. Linux环境下即时通信软件设计与实现[J].软件导刊,2014,13(06):92-93.
[2]诸亿郎,徐海军.端到端安全即时通信软件SIM设计与实现[J].科技广场,2017(04):115-119.