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 条评论
登录 后参与评论

相关文章

来自专栏HT

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

之前在拓扑上的应用都是些静态的图元,今天我们将在拓扑上设计一个会动的图元——叶轮旋转。 先看看最后我们实现的效果:http://www.hightopo.com...

2508
来自专栏HT

基于HTML5 Canvas实现工控2D叶轮旋转

之前在拓扑上的应用都是些静态的图元,今天我们将在拓扑上设计一个会动的图元——叶轮旋转。 http://www.hightopo.com/guide/guide/...

2745
来自专栏HT

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

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

2065
来自专栏HT

基于HTML5快速搭建TP-LINK电信拓扑设备面板

  今天我们以真实的TP-LINK设备面板为模型,完成设备面板的搭建,和指示灯的闪烁和图元流动。   先来目睹下最终的实现效果:http://www.hight...

26010
来自专栏hightopo

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

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

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

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

7172
来自专栏肖洒的博客

Python网络数据采集

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

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

三天学会HTML5 之第一天

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

2237
来自专栏轻扬小栈

让人纠结的首行缩进

1372
来自专栏web

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

1474

扫码关注云+社区

领取腾讯云代金券