需求出现/使用场景:

  因为公司需要将word办的接口文档在线化,看起来是个很好的事情,但是就是苦逼了我们这些干活的,其中工程量最大的就是参数的录入,要是参数少也罢,有的接口动辄三四十个参数,更甚八九十个,我手动复制了一个三四十个的就让我怀疑人生,我觉的我的人生不能在赋值接口参数中浪费掉。以前也学过一点python知识,也实践过通过selenium来模拟点击,所以就萌发了一个读取文件然后通过selenium来进行表单的填充和提交,完成工具以后会节省大约80%的工作量。 大大提高了效率,也减少了对手腕的伤害。

  下面是参数录入界面,可以知道点击以后一个个粘贴需要费多大的力气。

实现过程:

  下面介绍一下实现过程及思路,因为要复制word中的内容,但是在word中的格式不是统一的, 所以要进行人为的将接口复制到文本文档中,并且要做相应的格式处理,所以这个工具归属于半自动化。

  1.读取文件

    首先要通过python进行文件的读取,不得不说python的语法是真的简简洁,读取文件一行代码的事,然后剩下的就是根据某个标识符,对每一行数据进行处理存储。  下列是读取文件代码示例:

    f = open("C:\\Users\\Administrator\\Desktop\\api.txt", 'r', encoding='UTF-8')
list = f.readlines()

  2.开始使用selenium

    selenium可以支持火狐、IE、谷歌,使用的时候都需要先下载对应的浏览器驱动,这里我选择谷歌。首先去下载浏览器驱动,    在这个网址下载 https://blog.csdn.net/jeremyjone/article/details/80450251,同时,贴出Chrome浏览器版本和与之对应的驱动,参考网址 https://www.cnblogs.com/sxming/p/7662945.html

    下载完以后还需要进行配置, 一是需要去环境变量配置,在上面网址中有介绍,二是直接指定路径,我使用的是第二种方法,比较方便,不要忘记导入对应的模块

    browser = webdriver.Chrome(executable_path=".\chromedriver.exe")

    selenium的基本操作,这里只介绍一些这个代码中使用到的,更多API百度一下非常多:

    browser.get("https://baidu.com")    // 访问网址
    obj = browser.find_element_by_id("ks_ka_api_id") // 通过id查找元素
    obj1 = browser.find_element_by_xpath('//*[@id="test_form"]/input[5]') // 通过xpath查找元素
    obj2 = find_elements_by_tag_name("p") // 通过Dom来查找元素     obj2.send_keys(); // 填充数据
    obj.click() // 点击按钮

    在自动话的过程中使用到了下拉框的选择,通过查找可以通过一下代码来实现指定选中,其他的方法可以通过网上教程来了解:

    f_selet = Select(browser.find_element_by_id("ks_ka_id"))   // 下拉框对象
    f_selet.select_by_visible_text(select_text) // 选中哪个文本

总结:     

  到现在为止基本核心部分的思路就完成了,然后对代码进行修饰,添加日志和异常处理,代码就完成了,贴出完成代码。  这个程序也不是特别复杂, 不过可以对有遇到类似场景的提供一个减少自己工作量的思路。从这里还是可以看出这种繁杂并且重复的劳动还是可以通过代码来编写一些自动化工具的平时多思考,这种时候就会让自己的工作量减少许多,做出了这个软件一方面是减少工作量,另一方面也是进行了python的学习,一举两得。

  同时我们不可能每次运行这个程序都是通过ide来运行,最好的方式是打成exe,需要的时候只需要双击一下。  如果有需要进行打包功能的同学可以看下一篇文章: https://www.cnblogs.com/liyuhui-Z/p/9419935.html

通过Python实现一个文档的半自动录入工具的更多相关文章

  1. Python处理Excel文档(xlrd, xlwt, xlutils)

    简介 xlrd,xlwt和xlutils是用Python处理Excel文档(*.xls)的高效率工具.其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.B ...

  2. Openstack python api 学习文档 api创建虚拟机

    Openstack python api 学习文档 转载请注明http://www.cnblogs.com/juandx/p/4953191.html 因为需要学习使用api接口调用openstack ...

  3. 用Python做SVD文档聚类---奇异值分解----文档相似性----LSI(潜在语义分析)

    转载请注明出处:电子科技大学EClab——落叶花开http://www.cnblogs.com/nlp-yekai/p/3848528.html SVD,即奇异值分解,在自然语言处理中,用来做潜在语义 ...

  4. Python之xml文档及配置文件处理(ElementTree模块、ConfigParser模块)

    本节内容 前言 XML处理模块 ConfigParser/configparser模块 总结 一.前言 我们在<中我们描述了Python数据持久化的大体概念和基本处理方式,通过这些知识点我们已经 ...

  5. python+selenium自动化软件测试(第12章):Python读写XML文档

    XML 即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 行定义的源语言.xml 有如下特征: 首先,它是有标签对组成:<aa></aa> ...

  6. 【转】Python之xml文档及配置文件处理(ElementTree模块、ConfigParser模块)

    [转]Python之xml文档及配置文件处理(ElementTree模块.ConfigParser模块) 本节内容 前言 XML处理模块 ConfigParser/configparser模块 总结 ...

  7. python 分词计算文档TF-IDF值并排序

    文章来自于我的个人博客:python 分词计算文档TF-IDF值并排序 该程序实现的功能是:首先读取一些文档,然后通过jieba来分词,将分词存入文件,然后通过sklearn计算每一个分词文档中的tf ...

  8. [转载]linux+nginx+python+mysql安装文档

    原文地址:linux+nginx+python+mysql安装文档作者:oracletom # 开发包(如果centos没有安装数据库服务,那么要安装下面的mysql开发包) MySQL-devel- ...

  9. python操作docx文档(转)

    python操作docx文档 关于python操作docx格式文档,我用到了两个python包,一个便是python-docx包,另一个便是python-docx-template;,同时我也用到了很 ...

随机推荐

  1. C# 学习笔记(二) 时间格式化字符串

    1. 以下4种时间格式化符号输出的固定时间格式在各个区域设置中都应是相同的: 标准格式字符串 由 DateTimeFormatInfo.InvariantInfo 属性定义 自定义格式字符串 “O”或 ...

  2. MySQL的排序方式

    MySQL中 进行排序的方式: Select * from 表名 [where 条件 order by  字段名(默认的是ASC升序排列)] ASC是升序排列,DESC用来指定降序排列 Oracle中 ...

  3. vue+element ui 的上传文件使用组件

    前言:工作中用到 vue+element ui 的前端框架,使用到上传文件,则想着封装为组件,达到复用,可扩展.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9 ...

  4. win8.1 pro-64位下安装配置MinGW—64位

    1.下载MinGW-w64位:http://mingw-w64.org/doku.php 点击Downloads 说明:这边使用的是在线安装方式: 在网站里可以看到他安装后的文件夹: 2.安装 运行m ...

  5. (mysql)找不到请求的 .Net Framework Data Provider。可能没有安装

    webconfig配置以下节点(注意版本号) <system.data> <DbProviderFactories> <add name="MySQL Data ...

  6. 用pymysql操作数据库

    import pymysql # 打开数据库连接 connection = pymysql.connect(host='127.0.0.1', user='root', passwd=', db='s ...

  7. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...

  8. 查看Linux 、Nginx、 MySQL 、 PHP 版本的方法

    参考:查看Linux .Apache . MySQL . PHP 版本的方法 1.查看Linux版本: uname -a: more /etc/issue; cat /proc/version; 2. ...

  9. CSS通过设置position定位的三种常用定位

    CSS中可以通过设置为元素设置一个position属性值,从而达到将不同的元素显示在不同的位置,或者固定显示在某一个位置,或者显示在某一层页面之上. position的值可以设为relative,ab ...

  10. OpenGL学习--05--纹理立方体--代码

    1.tutorial05.cpp // Include standard headers #include <stdio.h> #include <stdlib.h> // I ...