执行JS脚本
指令说明
在指定的网页执行JS脚本。可以接收参数并获取JS返回的参数。输入、输出参数会自动序列化、反序列化,支持Promise
如果需要在指定的iframe执行JS代码可以指定该iframe中的任意一个元素。
高级设置中可以指定JS最长执行时间,如果配置的执行时长 < 实际执行时长会导致报错
指令输入参数
| 输入参数 | 输入参数类型 | 说明 |
|---|---|---|
| 网页对象 | WebPage | 在该网页执行JS代码 |
| 网页元素 | WebElement 或 ElementDescriptor | 可选参数,在该元素所属的iframe中执行JS代码,可以选择捕获的网页元素也可以选择获取网页元素、获取网页相似元素、获取网页关联元素等指令获取到网页元素 |
| 输入参数 | Any | 传给网页JS方法的参数,会自动序列化、反序列化 |
| JS代码 | str | 待执行的JS代码 |
| 最长执行时间 | float | JS代码需要在该时间内return,单位:秒 |
指令输出参数
| 输出参数 | 输出参数类型 | 说明 |
|---|---|---|
| JS执行结果 | Any | JS方法return值,会自动序列化、反序列化 |
类型定义参考
JS代码模板
async function(htmlElement, param) {
//在此处编写您的Javascript代码
//htmlElement是输入参数中的 网页元素 对应的JS HTMLElement对象
//param是输入参数,Python对象会先序列化成JSON,然后再反序列化成JS的param参数
//返回值可以是对象,支持返回Promise
return null
}
提示
需要先安装曲辕RPA浏览器插件。
示例1
查询淘宝首页销量排行

js代码
async function (htmlElement, param) {
const goods = []
const elements = document.querySelectorAll(*.tb-pick-content-item*)
for (let element of elements) {
const name = element.querySelector('.info-wrapper').innerText
const price = parseInt(element.querySelector(".price-value").innerText)
const count = parseInt(element.querySelector(".month-sale").innerText)
goods.push({
name,
price,
count
})
}
return goods
}
示例2
在图片-1元素所属的iframe执行js代码从而隐藏该元素

常见问题
参考 网页操作常见问题