浅谈js注入与思路拓展

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

浅谈js注入与思路拓展

本章节提供的截图和数据都是测试数据,如有雷同实属巧合,特此声明

前言

在设计RPA流程中,除了对可见的页面进行UI自动化操作之外,还有一种看不见的操作就是执行JS;掌握了JS,在设计RPA流程时会有不一样的思路,不再受限制于UI页面和产品能力。

浏览器:谷歌浏览器

示例网址:https://www.baidu.com/

示例要求:以JS方式在百度网页输入关键词


章节内容如下:

JS使用的方式与区别

JS在RPA设计流程的应用


一、JS使用的方式与区别

1、使用RPA的执行JS插件

注:Chrome运行js不需要浏览器对象,IE需要

2、使用开发工具运行JS

在谷歌浏览器上按F12,会弹出开发工具面板,然后点击Console,输入对应的脚本如上图,回车,就可以运行JS(注:默认JS作用域是window.top

3、使用地址栏运行JS-表达式

在地址栏里输入javascript:document.getElementById("kw").value="金蝶",点击回车,查看页面

Javascript:表达式运行js,并且在当前页面返回运行结果,所以界面变成了“金蝶”二字

4使用地址栏运行JS-alert

在地址栏里输入javascript:alert(document.getElementById("kw").value="金蝶")点击回车,查看页面

此时页面正常,但是会弹出一个框,点击确定后,界面正常显示

由于Alert没有返回值,所以页面内容不会被覆盖

5、使用栏运行JS-匿名函数

在地址栏里输入javascript:(function(){var text= "金蝶";document.getElementById("kw ").value=text})()

回车,查看页面

运行正常

javascript:函数运行js函数(可以是匿名函数)

如果函数没有return则页面不影响

有return页面就会变成return的值,例如:javascript:(function(){return "金蝶"})()

6使用栏运行JS-void

在地址栏里输入javascript:void(document.getElementById("kw").value="金蝶")

这个运行效果与“址栏运行JS-匿名函数类似只是void函数里面只能写一句js,不支持多句

总结对比如下

对比项

优点/缺点

RPA组件

优点:配置简单;缺点:功能受RPA与浏览器通讯的插件限制

开发工具F12

优点:JS代码兼容性好,不受任何产品限制;缺点:需要打开开发工具,流程不连贯

地址栏-表达式

优点:JS代码兼容性好;缺点:页面会被结果覆盖

地址栏-alert

优点:JS代码兼容性好;缺点:页面会有一个弹框,流程不流畅

地址栏-匿名函数

优点:JS代码兼容性好不受任何产品限制适用于没有return的脚本,支持多句脚本;缺点:写法比较复杂

地址栏-void函数

优点:JS代码兼容性好缺点:不支持多行脚本

综上所述:除了RPA组件之外,地址栏-匿名函数是执行js的最佳方式


二、JS在RPA设计流程的应用

1、使界面复杂的操作简单化:例如大表单操作,需要填写几十个字段,不需要这么多个活动组件,只需要1个js组件即可,稳定性和效率大大提升

2、不受HTML元素表面属性影响:例如只读元素限制了输入

如上图,当日期为只读时,只能通过界面进行选择,这时所有的模拟键盘输入操作都会失效,只能使用设置文本或执行js(设置文本本质上也是执行js

3、优化循环业务操作

Dom元素的点击实际上就是触发OnClick事件,当我们知道OnClick里定义的内容时,就可以直接通过获取OnClick的内容执行JS了。举个例子

如上图,从查看按钮的HTML可以得到以下信息点击查看按钮会调用一个叫detailSubmit的函数,那么我们可以先收集这个函数的信息,放到一个List里面(如果表格有翻页的话,也可以先把翻页后的数据收集完成后),最后统一处理点击查看后逻辑

通过使用JS和队列模型,优化了原先固化的流程设计思路


浅谈js注入与思路拓展

本章节提供的截图和数据都是测试数据,如有雷同实属巧合,特此声明前言在设计RPA流程中,除了对可见的页面进行UI自动化操作之外,还有一种...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息