【办公类-26-01】20240422 UIBOT网络教研(自动登录并退出多个账号,半自动半人工)

本文主要是介绍【办公类-26-01】20240422 UIBOT网络教研(自动登录并退出多个账号,半自动半人工),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作品展示:

背景需求:

每学期有多次网络教研

因为我有历任搭档的进修编号和登录密码,

所以每次学习时,我会把历任搭档的任务也批量完成。

但是每次登录都要从EXCEL里复制一位老师的“进修编号”“密码”,还要点击多次按钮,才能登录某位老师的账号进去。

手动复制,容易搞不清楚刚才登录的是哪个账户,是否遗漏人员

我想用UIBOT自动读取EXCEL单元格内容,自动键盘输入“编号”“密码”,实现账户登录,然后手动输入学习内容、感悟、回复的文字。一定程度提高完成的速度。

UIBOT(以管理员身份打开)

C++

Dim objExcelWorkBook,arrayRet,iRet,temp,iPID,hWeb,dictRetobjExcelWorkBook = Excel.OpenExcel('''C:\Users\jg2yXRZ\OneDrive\桌面\20230223进修编号10月刷分.xlsx''',true,"Excel","","")
区域=Excel.ReadRange(objExcelWorkBook,"Sheet1","B2:D13",true)
行=UBound(区域)
TracePrint(行)
For i = 0 To 行 step 1hWeb = WebBrowser.Create("chrome","https://shanghai.3ren.cn/",30000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"sBrowserPath":"","sStartArgs":""})
Window.Show(@ui"窗口_上海教研在线-GoogleChrome","max")
Delay(1000)
#icon("@res:788c1f60-0099-11ef-9784-0942ecf9a81b.png")
Image.Click({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"上海教研在线 - Google Chrome","app":"chrome"}]},{"x": 0, "y": 0, "width": 0, "height": 0},@res"788c1f60-0099-11ef-9784-0942ecf9a81b.png",0.9,"left","click",10000, {"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 200, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate","sMatchType":"GrayMatch", "iSerialNo": 1})
Delay(1000)
#icon("@res:8ac35c70-0099-11ef-9784-0942ecf9a81b.png")
Image.Click({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"上海教研在线 - Google Chrome","app":"chrome"}]},{"x": 0, "y": 0, "width": 0, "height": 0},@res"8ac35c70-0099-11ef-9784-0942ecf9a81b.png",0.9,"left","click",10000, {"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 200, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate","sMatchType":"GrayMatch", "iSerialNo": 1})
Delay(1000)
#icon("@res:92d9fa90-0099-11ef-9784-0942ecf9a81b.png")
Image.Click({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"CAS – 统一身份认证 - Google Chrome","app":"chrome"}]},{"x": 0, "y": 0, "width": 0, "height": 0},@res"92d9fa90-0099-11ef-9784-0942ecf9a81b.png",0.9,"left","click",10000, {"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 200, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate","sMatchType":"GrayMatch", "iSerialNo": 1})
Delay(1000)
TracePrint(区域[i])
编号 = 区域[i][1]
密码 = 区域[i][2]
Keyboard.InputText(@ui"块级元素<div>_师训号/身份证号/用户名",区域[i][1],true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})Keyboard.InputText(@ui"输入控件<input>",区域[i][2],true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})
Mouse.Drag(826, 598, 1111, 595, "left", [],{"iDelayAfter": 300, "iDelayBefore": 200})#icon("@res:45c72f60-009a-11ef-9784-0942ecf9a81b.png")
Image.Click({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"CAS – 统一身份认证 - Google Chrome","app":"chrome"}]},{"x": 0, "y": 0, "width": 0, "height": 0},@res"45c72f60-009a-11ef-9784-0942ecf9a81b.png",0.9,"left","click",10000, {"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 200, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate","sMatchType":"GrayMatch", "iSerialNo": 1})
Delay(1000)iRet = Dialog.MsgBox("手动完成教研,要推出账户","Laiye Automation",0,1,0)
Mouse.Move(1380, 144, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Delay(1000)
Mouse.Move(1392, 350, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
Delay(1000)#icon("@res:fefad960-009e-11ef-9784-0942ecf9a81b.png")
Image.Click({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"上海教研在线 - Google Chrome","app":"chrome"}]},{"x": 0, "y": 0, "width": 0, "height": 0},@res"fefad960-009e-11ef-9784-0942ecf9a81b.png",0.9,"left","click",10000, {"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 200, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate","sMatchType":"GrayMatch", "iSerialNo": 1})
Delay(1000)
Next
Excel.CloseExcel(objExcelWorkBook,true)

视频展示:

测试时,没有录屏,等下一次网络教研再录制

感悟:

用了这个代码,输入网址、输入账号和密码、退出浏览器的部分内容可以用程序自动填写(半自动)、按钮暂停后,进行人工做题(半人工)

可减少人工切换页面,复制黏贴、点击按钮的频率,一定程度提高工作效率

这篇关于【办公类-26-01】20240422 UIBOT网络教研(自动登录并退出多个账号,半自动半人工)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/932733

相关文章

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想