【办公类-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

相关文章

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... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Spring Security重写AuthenticationManager实现账号密码登录或者手机号码登录

《SpringSecurity重写AuthenticationManager实现账号密码登录或者手机号码登录》本文主要介绍了SpringSecurity重写AuthenticationManage... 目录一、创建自定义认证提供者CustomAuthenticationProvider二、创建认证业务Us

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.