用fme和Python-selenium模块实现网站表格批量自动化录入和文件上传

目录

前言

一、selenium是什么?

二、需要配置环境

1.fme

2.python需要的模块(selenium,pywin32)

3.需要安装的浏览器已经对应版本的浏览器驱动

三、项目实战

1.基础数据处理

​2.自动化程序的实现

 3.扫描件上传

总结


前言

现在很多系统平台,都有大量的填报录表、上传扫描件附件等的工作内容,尤其是涉及很多数据已有的数据信息(例如只有一份录入好的电子表格)然后我们花费大量的人力物力,去做复制粘贴的工具,将一个电子表格的内容一项一项的复制粘贴到平台。所以悟空分享一个用web自动化脚本工具selenium来替代人类,帮我们完成这些重复繁琐的工作。

一、selenium是什么?

Selenium是一个用于Web应用程序测试的工具。它可以模仿人类操作网页,并能从网页端获取需要的数据或者发送数据。

二、需要配置环境

1.fme

首先为了保证数据本身质量的准确性,和传入代码的参数的格式的正确性。我们需要用fme提前处理整合数据。

2.python需要的模块(selenium,pywin32)

用fme和Python-selenium模块实现网站表格批量自动化录入和文件上传_第1张图片

 需要使用pip命令安装到fme内置的python编译器里面,不会的同学可以参考我的之前的博客,推荐安装selenium3.9版本,因为部分基于ie内核开发的平台的ie驱动最高版本只兼容selenium3.9

3.需要安装的浏览器已经对应版本的浏览器驱动

推荐谷歌浏览器和chromedriver,都能再网上下载到这是下载地址http://chromedriver.storage.googleapis.com/index.html

需要注意的是浏览器版本一点要和驱动版本一致。

三、项目实战

这里以某登记平台为例,需要填大量的表格和以及完成对应的扫描件上传。

1.基础数据处理

 首先我们拥有的基础数据很差,只有一个cad的地籍图和户籍台账,那么填报表需要的信息,就需要做数据分析和处理还有整合,当然这也是fme的强项。

用fme和Python-selenium模块实现网站表格批量自动化录入和文件上传_第2张图片

然后我们就会获得我们需要的导入的数据表。

2.自动化程序的实现

用fme和Python-selenium模块实现网站表格批量自动化录入和文件上传_第3张图片

 根据手动录入的流程解析,找到每一个环节对应的html定位元素,这里可以使用八大元素定位法则。我最推荐使用的xpath,简单高效快捷,而且值唯一,再谷歌浏览器的f12开发者工具里面自带xpath复制工具,但是有些环节,产生的xpath是随机出现的,这时候就不适合用xpath了,因为根据你导入的数据不同xpath的值会改变,那么这时候就需要用其他定位方法定位多个值,例如:用find_elements_by_class_name找到符合class的全部要素,然后再遍历要素或许我们需要的那一个。其次再写自动化脚本的过程中,会需要各种各样的问题,例如ifrome表格的切换,窗口的切换,以及尽量不要使用time.sleep方法,这样会让你的脚本非常不稳定,尽量多使用显式或者隐式等待,还有就是多用try语句,来保证代码的强壮。

完成我们的自动化脚本编译后就可以愉快的将数据导入到填报系统了。用fme和Python-selenium模块实现网站表格批量自动化录入和文件上传_第4张图片

 3.扫描件上传

大部分平台的上传按钮都不是用的input标签,所以不能使用selenium自带的上传语句,这时候我们需要用到python来调用windows的api。所以需要用到pywin32模块,pip安装后,用spy++插件找到弹出的窗口的标题,句柄等信息。然后提前准备好扫描件路径,就可以实现文件的上传了。

用fme和Python-selenium模块实现网站表格批量自动化录入和文件上传_第5张图片

 可以看到上传的效果还是很好的,唯一注意的就是pywin32运行速度很快,而且不支持selenium的等待函数,所以需要提前设置好延迟,不然代码会因为找不到窗口而报错。

 

总结

随着时代的发展,各种技术的出现,很多需要花费大量人力物力的重复性工作其实都可以交给程序来解决。想起以前看过的一句话:只要是人重复性的工作,就一定能用代码来实现,如果不能实现,那只能说明程序员的能力不够。

 

你可能感兴趣的:(python,python,selenium,自动化)