问题
想在企业系统(网页)中点击下拉列表然后选中 Item, 使用了 Hover 和 Click 都不行。有什么解决办法?


最终使用 UiPath 得到的错误如下:

原因分析 及 解决思路
-
尝试模拟相关的事件,然后触发下拉列表,再用 selector 点击相关的选项。
有些 Input 元素是在 Click 或者 hover 之后才会将 Items 动态加载,然后插入到选项中显示出来,直接用 Selector 选中是不行的。那时候,Items 还没有创建出来。 -
尝试用 Set Web Attribute Activity 直接设置 Input value 属性
正常默认情况下,在下拉列表上点击其实就是将点击选项对应的 Value 赋值给 Input 框的Value 属性,原生的 HTML 的行为就是这样的。 -
Set Web Attribute Activity 前后都要模拟相关的动作,来触发事件*
有些控件在用户输入之前,执行回调函数来更新数据,在用户输入之后执行回调函数来将数据存放到某些变量里,或者做出一些运算。当方法2不行的时候,可以尝试在 Set Web Attribute Activity 之前和之后都加入一些事件来触发响应的事件。 -
分析 URL
页面从用户处收集到的信息都会以某种方式发送给服务器。
如果是 GET 方法,数据是直接在 URL 上面发送的,可以按照原来的规律,用参数构造出目标 URL而无需理会输入框的交互,这是最简单快捷的方法;
如果是是 POST 方法,数据是在 POST DATA 那里发送的,可以尝试分析POST 的数据,然后模拟 POST 的动作来获取服务器的数据。
总结
网络抓取之前一定要先分析网页特征和结构,切不可以贸贸然动手。比如上述的例子,假如可以分析出 GET 的参数并构造出 URL,那么很可能就能省下大量的时间和精力。
更多 UiPath 相关的资讯,请关注公众号:UiPath教程

网友评论