RPA解决网页元素随机变化的问题

1

问题描述

打开网页:http://rpachallenge.com,按照左侧要求创建一个工作流,该工作流将从电子表格中输入数据到屏幕上的表单字段中。

注意:

  1. 在每次提交之后,字段将在网页中的上改变位置,在10轮中,工作流必须正确地标识每一个电子表格记录必须在哪里输入。
  2. 一旦你点击开始按钮,挑战的倒计时就会开始了; 在此之前,您可以按自己的意愿多次提交表单。

2

问题分析

这个问题首先需要从Excel中读取信息,然后循环将每条记录写入到表单中,并提交。问题的难点每次网页刷新或者提交表单之后,网页中的Label和Input位置信息和元素的Name、ID都会变动,所以要考虑如何准确定位到这些元素,并输入数据。

3

解决方案

既然元素的位置信息和属性都是随机变动的,那么我们可以在Selector中不用这些属性,改为用他们父类的属性,比如parentid、Tag等,同时我们可以发现Label的名称是不变的,所以也可以在Selector中使用aaname这个属性。

综上,我们可以写出如下的Selector:

"
<webctrl aaname='First Name' parentid='randomForm' tag='DIV' />
<webctrl tag='INPUT' />
"

4

代码实现

5

优化

在下载的Excel中,我们可以发现它Header的名称和网页中的Label都是对应的,所以我们可以不用写七个click,也不用写七个Selector,在循环每一行的时候,在里面再放一个For Each,用来循环每一列,并且直接使用col.ToString.Trim来的到列名,然后将它作为变量,放入到Selector中,如下:

"<webctrl aaname='"+col.ToString.Trim+"' parentid='randomForm' tag='DIV' /><webctrl tag='INPUT' />"

6

测试

视频演示

视频内容

7

代码获取

代码已放在github上,有需要的小伙伴自行下载,顺便点个Star再走:

https://github.com/sombie007/RPA/tree/master/RPAChallenge/DynamicPage

原文发布于微信公众号 - 瞎说开发那些事(jsj201501)

原文发表时间:2018-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大学生计算机视觉学习DeepLearning

2018最新mfc作为上位机接收硬件端USB或串口数据显示成图片 解决串口接收数据丢字节丢包问题

第一步:首先建立一个MFC工程,成功后会跳出一个对话框,直接在对话框上点击右键-》点击插入ACTIVAE控件-》选择MicrosoftCommunication...

2082
来自专栏hightopo

基于HTML5 Canvas 实现矢量工控风机叶轮旋转

1004
来自专栏web

我之理解---计时器setTimeout 和clearTimeout

1284
来自专栏DeveWork

代码实现WordPress自动关键词keywords与描述description

之前在文章《WordPress自定义栏目运用实例II:添加文章Meta标签(keywords /description)》中给出了手动添加关键词keywords...

2179
来自专栏肖洒的博客

Python网络数据采集

有人说编程语言就是宗教,不同语言的设计哲学不同,行为方式各异,“非我族类,其心必异”,但本着美好生活、快乐修行的初衷,我们对所有语言都时刻保持敬畏之心,尊重信仰...

973
来自专栏IMWeb前端团队

React + Redux 组件化方案

React + Redux 组件化方案 在介绍组件化方案之前,先对 react 和 redux 做一个简单介绍。 Why React 理想中的组件化,第一步应该...

2078
来自专栏听雨堂

电子签名实现的思路、困难及解决方案

        在办公自动化的流程中希望实现电子签名。         思路:             1、图片的存放:安全起见存放在库中为宜。最好不能被轻易下...

2035
来自专栏轻扬小栈

让人纠结的首行缩进

1072
来自专栏HT

基于HT for Web矢量实现2D叶轮旋转

之前在拓扑上的应用都是些静态的图元,今天我们将在拓扑上设计一个会动的图元——叶轮旋转。 我们先来看下这个叶轮模型长什么样 ? 从模型上看,这个叶轮模型有三个叶片...

1875
来自专栏葡萄城控件技术团队

三天学会HTML5 之第一天

引言 HTML5 一直是非常热门的话题,因此此系列文章主要从一些基本功能开始讲起,逐步深入了解HTML5的新概念。 首先了解一些基本的术语和概念。 SGML, ...

2087

扫码关注云+社区