用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)
需要使用pip命令安装到fme内置的python编译器里面,不会的同学可以参考我的之前的博客,推荐安装selenium3.9版本,因为部分基于ie内核开发的平台的ie驱动最高版本只兼容selenium3.9
3.需要安装的浏览器已经对应版本的浏览器驱动
推荐谷歌浏览器和chromedriver,都能再网上下载到这是下载地址http://chromedriver.storage.googleapis.com/index.html
需要注意的是浏览器版本一点要和驱动版本一致。
三、项目实战
这里以某登记平台为例,需要填大量的表格和以及完成对应的扫描件上传。
1.基础数据处理
首先我们拥有的基础数据很差,只有一个cad的地籍图和户籍台账,那么填报表需要的信息,就需要做数据分析和处理还有整合,当然这也是fme的强项。
然后我们就会获得我们需要的导入的数据表。
2.自动化程序的实现
根据手动录入的流程解析,找到每一个环节对应的html定位元素,这里可以使用八大元素定位法则。我最推荐使用的xpath,简单高效快捷,而且值唯一,再谷歌浏览器的f12开发者工具里面自带xpath复制工具,但是有些环节,产生的xpath是随机出现的,这时候就不适合用xpath了,因为根据你导入的数据不同xpath的值会改变,那么这时候就需要用其他定位方法定位多个值,例如:用find_elements_by_class_name找到符合class的全部要素,然后再遍历要素或许我们需要的那一个。其次再写自动化脚本的过程中,会需要各种各样的问题,例如ifrome表格的切换,窗口的切换,以及尽量不要使用time.sleep方法,这样会让你的脚本非常不稳定,尽量多使用显式或者隐式等待,还有就是多用try语句,来保证代码的强壮。
完成我们的自动化脚本编译后就可以愉快的将数据导入到填报系统了。
3.扫描件上传
大部分平台的上传按钮都不是用的input标签,所以不能使用selenium自带的上传语句,这时候我们需要用到python来调用windows的api。所以需要用到pywin32模块,pip安装后,用spy++插件找到弹出的窗口的标题,句柄等信息。然后提前准备好扫描件路径,就可以实现文件的上传了。
可以看到上传的效果还是很好的,唯一注意的就是pywin32运行速度很快,而且不支持selenium的等待函数,所以需要提前设置好延迟,不然代码会因为找不到窗口而报错。
总结
随着时代的发展,各种技术的出现,很多需要花费大量人力物力的重复性工作其实都可以交给程序来解决。想起以前看过的一句话:只要是人重复性的工作,就一定能用代码来实现,如果不能实现,那只能说明程序员的能力不够。
用fme和Python-selenium模块实现网站表格批量自动化录入和文件上传相关推荐
- python上传文件到windows_python自动化-WinSpy+pywin32文件上传操作
'''百度首页搜索上传图片为例''' #前提条件 1.使用winspy定位绝对路径 #前提条件 2.安装库pywin32 采用pip安装pip install pywin32 或其他途径安装 #1.访 ...
- python 文件上传 web_pythonweb自动化三种文件上传方法
文件上传三种方式: (一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传 方法:和用户输入是一样的,使用send_keys 步骤:1.找到定位元素,2,输入文件路径 ele=d ...
- 【Python爬虫系列教程 5-100】 Requests高级用法:文件上传,如何设置SSL证书验证、处理超时设置 、身份认证和代理设置
文章目录 高级用法 文件上传 Cookies Session维持 SSL证书验证 超时设置 身份认证 代理设置 Prepared Request 高级用法 上篇,我们了解了requests的基本用法, ...
- selenium autoit java_Java+Selenium——AutoIt工具处理文件上传
关于文件上传,这边介绍一个第三方工具,叫AutoIt,简单来说,这个是一个能支持桌面GUI自动化的工具,它支持脚本语言编写.这里,我们用AutoIt来做文件上传的演示.在Selenium脚本中如果需要 ...
- 已解决python selenium模块自动化操作谷歌浏览器点击元素失效问题解决(亲测有效)
已解决python selenium模块自动化操作浏览器点击元素,抛出异常selenium.common.exceptions.ElementClickInterceptedException: Me ...
- python selenium 下载文件_Python Selenium —— 文件上传、下载,其实很简单
很多selenium学习者被浏览器弹出的文件上传.下载框折磨的痛不欲生,今天博主就带你们轻松搞定上传和下载问题. 上传 上传弹框 文件上传是所有UI自动化测试都要面对的一个头疼问题,要处理这个问题,我 ...
- 基于python的selenium两种文件上传方式
方法一.input标签上传 如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径. 方法二.非input标签上传 这种上传方式需要借助第三方工具,主要有以下三种情 ...
- python selenium 文件上传_Python+Selenium学习--上传文件
场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路. 上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡 ...
- python selenium 文件上传_python+selenium 文件上传
前言 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决: 另外一种 ...
最新文章
- OpenCV(十七)边缘检测3 -- Canny算子(最优边缘检测)
- mysql as 后面字段_mysql 字段as详解及实例代码
- Centos目录及其常用处理命令
- python enumerate()函数
- linux合并两个文件 去重复,c - 在Linux中使用C,通过系统调用将两个文本文件合并为一个新文件(来回换行) - 堆栈内存溢出...
- JDK10的新特性:var和匿名类
- ibm mq并发访问队列_消息队列之九问九答
- ICCV2019 Workshop—VisDrone2019 Challenge 无人机视觉挑战赛
- xcode 制作静态库.a文件 详解
- Linux 字符集问题
- 美国专家声讨物联网安全 面对攻击如纸糊
- 基于python实现Maxwell软件的自动仿真分析
- 最新WannaRen勒索病毒解密工具
- LINUX系统配置FTP服务器教程
- 端电压,相电压,线电压区别
- pex虚拟机自动安装
- CANoe之CAPL编程(CANoe系列其三)
- vscode和sqlite3的环境配置
- OpenTracing-Java实现的灵魂十问
- 安装Office2010提示无法将数值写入注册表
热门文章
- [新浪微博]response Code=-1011 Request failed: forbidden (403)错误的解决办法
- 若依管理系统部署(SpringCloudAlibaba)
- 哈工大计算机系统实验一:计算机系统漫游
- php团购网站 毕业论文,团购网站的设计与实现(PHP,MySQL)(含录像)
- Java中有了基本类型为什么还要有包装类型(封装类型)
- 网络营销的前景与就业情况
- 让user组用户登录时自动运行需要administrator权限的程序
- 惠普系列笔记本爆出严重性能缺陷
- Word无法启动转换器mswrd632.wpc”方法
- 山东武术与宋太祖长拳