前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RPA解决网页元素随机变化的问题

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

作者头像
用户2017109
发布2018-06-19 11:15:06
1.6K0
发布2018-06-19 11:15:06
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瞎说开发那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档