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

相关文章

来自专栏liulun

自己动手写客户端UI库——事件机制(设计思路大放送)

在上一篇文章中我们创建了一个Button控件,并把这个控件显示在界面上, 在这一篇文章中,我们将为这个控件增加一个事件和一个方法 一:怎么绑定事件的问题 ...

1969
来自专栏Java3y

Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】

什么是会话技术 基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们...

2985
来自专栏Android 开发者

开发者也是用户 — 第一部分:构建更具可用性的 UI 与 API 的 5 个方针

1232
来自专栏后端之路

Sql注入

关于防范Sql注入也是安全测试老生常谈的问题。 首先说一下,攻击者之所以可以利用自己输入的数据来达到攻击网站的目的,原因就在于SQL语言作为一种解释型语言,它的...

1998
来自专栏Spark学习技巧

SparkStreaming源码阅读思路

1032
来自专栏blackheart的专栏

如何站在使用者的角度来设计SDK-微信公众号开发SDK(消息处理)设计之抛砖引玉

0.SDK之必备的基本素质 在项目中免不了要用到各种各样的第三方的sdk,在我现在的工作中就在公司内部积累了各种各样的的公共库(基于.net的,基于silver...

2019
来自专栏小程序·云开发官方专栏

小程序·云开发的云函数路由高级玩法

在掘金开发者大会上,在推荐实践那里,我有提到一种云函数的用法,我们可以将相同的一些操作。

7.6K6
来自专栏Python攻城狮

Python网络爬虫(八) - 利用有道词典实现一个简单翻译程序1.爬虫前的分析2.Python使用MD5加密字符串3.代码操作基于python3.5

因为要实现有道翻译的翻译功能,就需要找到它的接口,打开审查元素,来到网络监听窗口(Network),查看API接口。

764
来自专栏有趣的django

python爬虫入门(三)XPATH和BeautifulSoup4

 XML和XPATH 用正则处理HTML文档很麻烦,我们可以先将 HTML文件 转换成 XML文档,然后用 XPath 查找 HTML 节点或元素。 XML 指...

2874
来自专栏IT技术精选文摘

RPC原理及实现

1 简介 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明...

4149

扫码关注云+社区