(async () => {
/*参数配置:
数据源记录当前行全局变量对象: S
const env_ID = S.v1;
1、调试模式S.v1 = 0
2、运行模式指定S.v1指定为netbrowser 环境ID
*/
console.log("--start--S:",JSON.stringify(S));
//在代码头部重定义数据源子项的具体变量名,方便代码书写
const env_ID = S.v1; //NestRPA创建数据源的时候可以指定v1-v20一共20个项的数据,通过S.v1-v20来访问
const url = S.v2;
try{
do{
const browser = await Net_getBrowser(env_ID); //拉起NestBrowser的指定环境运行
if(!browser ){
console.log('[error]Net_getBrowser is null');
break;
}
const context = browser.contexts()[0]; //获取环境的上下文对象用来操作page对象
const page = await context.newPage(); //新建一个page,相对于点击浏览器工具栏的“+”按钮
await page.goto('chrome://new-tab-page/'); //跳转到默认欢迎页
await page.waitForTimeout(1000); //等待1秒钟
await page.goto(url); //跳转到实际需要打开的目标网站
await page.waitForTimeout(3000); //浏览3秒钟
await page.close(); //关闭当前page页面;相当于点击浏览器tab栏的 “x” 按钮
// ---------------------
console.log("--end--env_ID:",env_ID);
await context.close(); //释放上下文对象
}while(false);
}catch(e){
console.log('catch error:',e); //异常时候打印出错信息
}finally{
await Net_closeTask(env_ID); //最后关闭拉起NestBrowser的指定环境
//await Net_closeBrowser(0); //如果参数为0,代表只结束当前任务但是不关闭拉起NestBrowser的浏览器环境
}
})();
NestRPA自动生成模板代码解析:
1、整体是一个异步调用函数封装;这样可以方便支持后续代码全异步方式书写
2、RPA脚本在调起的时候,NestRPA会同步设置一个全局变量S,这个全局变量S实际上代表的就是数据源当前行的完整数据;console.log("--start--S:",JSON.stringify(S));就是打印这个全局变量,它是一个object