uipath实现滑动验证码登录
- 现实需求
在进行RPA流程设计过程中,遇到登录系统需要滑动验证的情况,如图所示:
此时需要在RPA流程设计中,借助现有的活动完成模拟人工操作,完成验证登录操作。
- 设计思路
这个功能流程的设计思路大体如下:
1、首先是利用uipath自带的截取屏幕图片活动,将需要验证的图片截取下来;
2、调用第三方平台的接口识别图片并返回缺口的x坐标;
3、利用uipath自带的“单击”活动,模拟拖动滑块,实现验证登录的操作。
- 实现过程
- 在uipath中使用截取屏幕截图,捕捉需要进行验证的验证码图片,自定义存储文件的路径,我这里是定义了一个变量img_path来存放文件路径。
2.添加“pyhton作用域”活动,在作用域中依次添加“加载python脚本”、“调用python方法”、“获取python对象”三个活动。
以上活动的前提是你要在项目依赖项中先添加uipath.python.activities,不然在活动中你是找不到上面的这些活动的。
添加依赖项的方法:在设计界面上方点击管理程序包,在管理包界面中搜索输入python,选择对应的包安装即可。
当然,你要调用python的脚本代码,自然也是要先安装python解析器的,至于安装python解析器的步骤方法,这里就略过,请各位自行百度。
3.填写相应活动的参数变量,这里就只展示一些必填的参数内容。
Python作用域
版本:根据你本地安装的python解释器为准,我这里选择自动;
目标:x86或者x64,根据你实际的情况进行选择;
路径:就是python.exe的文件路径,我这里设置了变量python_path来存放。
加载python脚本
文件:也就是你python脚本文件的存放路径,我这里用py_path变量来存放;
结果:这里需要定义一个pyhton对象来存放输出的结果,定义为py_def。
调用python方法
名称:你需要调用的python脚本里面的方法名称,我这里定义变量def_name来存放;(这里面要注意,这个名称必须与你python脚本中的方法名称一样)
实例:就是第一步加载python脚本时,输出的python对象数据,也就是py_def;
结果:该活动最终输出的结果,类型也是一个python对象,我这里定义一个变量code_value_py来进行存放。
获取pyhton对象
TypeArgument:这里根据你实际返回的结果需要进行选择,我这里需要返回的是字符串(string);
Python对象:这里输入上一步调用python方法输出的结果,我这里为定义的变量code_value_py;
结果:最终输出的结果,可以自行定义,我这里定义变量code_value进行存放。
经过以上步骤,最后我们可以拿到一个验证码图片缺口的x坐标的值。可能有的朋友就有疑惑了,这个x坐标的值是怎么拿到的。别急,最后我会对python脚本展开来讲。
4.添加三个“单击”活动,用以模拟鼠标的操作来完成滑动验证码验证,三个单击活动的参数配置稍有不同,分别如下:
第一个单击活动
光标移动类型:CursorMotionType.Smooth
点击类型:选择下,鼠标键默认左键,表示鼠标按下左键;
单击偏移量:模式选择PointOffset,但是不设置偏移量,表示从起点开始;
输入模式:选择硬件事件。
第二个单击活动
光标移动类型:CursorMotionType.Smooth
点击类型:选择下,鼠标键默认左键,表示鼠标按下左键;
单击偏移量:模式选择PointOffset,这里的偏移量应用前面python返回的x值,表示从滑动到的位置,我这里设置为CInt(code_value);
输入模式:选择硬件事件。
这里可能还要设置活动完结后,延迟2~3秒。
第三个单击活动
光标移动类型:CursorMotionType.Smooth
点击类型:选择上,鼠标键默认左键,表示鼠标放开左键;
单击偏移量:模式选择PointOffset,但是不需要设置偏移量;
输入模式:选择硬件事件。
至此,整一个RPA流程的设计需要的步骤就完成实现了。
- Python脚本代码
参考的python脚本代码如下,这里调用的是云码平台提供的接口,https://zhuce.jfbym.com/demo/。这里还有一个图鉴的平台,上面的接口脚本也可以参考http://ttshitu.com/docs/python.html#pageTitle。
import jsonimport timeimport requestsimport base64class YdmVerify(object):_custom_url = "http://api.jfbym.com/api/YmServer/customApi"_token = "your token"_headers = {'Content-Type': 'application/json'}def sin_slide_verify(self, image, verify_type="20110"):# 通用单图滑块(截图) 20110payload = {"image": base64.b64encode(image).decode(),"token": self._token,"type": verify_type}Resp=requests.post(self._custom_url,headers=self._headers,data=json.dumps(payload))#print(resp.text)print(resp.json()['data']['data'])return resp.json()['data']['data']def base64_api():Y = YdmVerify()with open('your img_path', 'rb') as f:s = f.read()return Y.sin_slide_verify(image=s)if __name__ == '__main__':#Y = YdmVerify()#with open('your img_path', 'rb') as f:# s = f.read()# Y.sin_slide_verify(image=s)result = base64_api()print(result)
相关文章:

uipath实现滑动验证码登录
现实需求 在进行RPA流程设计过程中,遇到登录系统需要滑动验证的情况,如图所示: 此时需要在RPA流程设计中,借助现有的活动完成模拟人工操作,完成验证登录操作。 设计思路 这个功能流程的设计思路大体如下: …...

openai-chatGPT的API调用异常处理
因为目前openai对地区限制的原因,即使设置了全局代理使用API调用时,还是会出现科学上网代理的错误问题。openai库 0.26.5【错误提示】:raise error.APIConnectionError(openai.error.APIConnectionError: Error communicating with OpenAI: …...

css实现音乐播放器页面 · 笔记
效果 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …...

buu [NPUCTF2020]这是什么觅 1
题目描述: 就一个这种文件,用记事本打开后: 题目分析: 打开后就一串看不懂的东西,想想这个东西曾经在 010editor 或 winhex中出现过(右端)既然如此那么我们就用它打开,得到&#…...
Restful API 设计规范
1. 简介 目前 "互联网软件"从用客户端/服务端模式,建立在分布式体系上,通过互联网通讯,具有高延时、高开发等特点。但是软件开发和网络是两个不同的领域,交集很少。要使得两个融合,就要考虑如何在互联网环境…...
sigwaittest测试超标的调试过程
1,问题描述硬件环境:飞腾S2500(64核)OS:kylinOS, linux preempt rt, 4.19.90测试命令:sigwaittest -p 90 -i 1000 -a 1测试结果:信号混洗值最大超过了80us,与飞腾其他CPU…...

Python进阶-----面对对象4.0(面对对象三大特征之--继承)
目录 前言: Python的继承简介 1.什么是继承 2.继承的好处 3.object类 继承的相关用法 1.继承的定义与法则 2.对继承的重写 3.(单继承)多层继承 4.多继承 5.多继承重写时调用父类方法 前言: 在讲之前,我想说说中…...

九龙证券|利好政策密集发布,机构扎堆看好的高增长公司曝光
新能源轿车销量和保有量快速增长,带来了充电桩商场的微弱需求。 日前,商务部部长王文涛表明,本年将在落实好方针的一起,活跃出台新方针办法,比方辅导当地展开新能源轿车下乡活动,优化充电等使用环境&#x…...

stm32CubeIDE FMC 驱动LCD(8080)
一,TFT屏硬件接口16位,80并口。二,FMC介绍。FSMC(Flexible Static Memory Controller),译为灵活的静态存储控制器。STM32F1 系列芯片使用 FSMC 外设来管理扩展的存储器,它可以用于驱动包括 SRAM…...

Java 数据类型
数据类型用于对数据归类,以便开发者理解和操作。 基本数据类型 Java 确定了每种基本数据类型所占存储空间的大小,不会像其它语言那样随机器硬件架构的变化而变化,这使 Java 程序更具可移植性。 Java 中定义了如下的基本数据类型。 byte …...

Prometheus 监控云Mysql和自建Mysql(多实例)
本文您将了解到 Prometheus如何配置才能监控云Mysql(包括阿里云、腾讯云、华为云)和自建Mysql。 Prometheus 提供了很多种Exporter,用于监控第三方系统指标,如果没有提供也可以根据Exporter规范自定义Exporter。 本文将通过MySQL server exporter 来监控…...

Vue3中的h函数
文章目录简介简单使用参数使用计数器进阶使用函数组件插槽专栏目录请点击 简介 众所周知,vue内部构建的其实是虚拟DOM,而虚拟DOM是由虚拟节点生成的,实质上虚拟节点也就是一个js对象事实上,我们在vue中写的template,最终也是经过…...
阿尔法开发板 IMX6ULL 说明
一. IMX6ULL开发板 IMX6ULL开发板即正点原子的阿尔法(ALPHA)开发板,采用恩智浦芯片,cortex-A7架构的。 二. IM6ULL开发板说明 1. IO说明 对于IMX6ULL芯片,一个IO对应两个寄存器,第一个寄存器负责配置其复用功能,…...

Altium Designer19 #学习笔记# | 基础应用技巧汇总
全文目录一.元件符号库二.元件封装库1.AD09 集成元件库/封装库三.电路原理图1. 巧用查找"相似对象功能"1.1 查找相同元件1.2. 查找相同文本1.3. 查找相同网络 :E - S - C四.PCB原理图【AD PCB模式下的常用快捷键】PCB视图放大/缩小PCB视图左/右移动PCB切换…...

Python 元类编程实现一个简单的 ORM
概述 什么是ORM? ORM全称“Object Relational Mapping”,即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码更简单,不用直接操作SQL语句。 现在我们就要实…...
《C++ Primer Plus》第18章:探讨 C++ 新标准(7)
C11 新增的其他功能 C11 增加了很多功能,本书无法全面介绍;另外,本书编写期间,其中很多功能还未得到广泛实现。然而,有些功能有必要简要地介绍一下。 并行编程 当前,为提高计算机性能,增加处…...

Redis学习(二):Redis安装测试
概述 Redis是什么 Redis, Remote Dictionary Server, 即远程字典服务。免费开源的数据库。 由C语言编写,支持网络,可基于内存亦可持久化的日志型、KV数据库,并提供所种语言的API。 Redis能干嘛 用于内存存储,持久化。rdb、ao…...

Vector - CAPL - 简介及数据结构
对于想进入车载行业或者已经在车载行业工作的朋友对于CAPL这个词都会相当的熟悉,都知道他是做车载网络测试脚本的语言,并且跟C有点类似,但是它到底是什么呢?CAPL全称(Communication Access Programming Language&#…...
20230304英语学习
What Would Happen if the Moon Disappeared Tomorrow? 如果明天月球消失了会怎样? The closest object to our planet, the Moon, may seem like Earth’s little sibling.Since its birth, the satellite has mostly just hung around, playing gravitational t…...

【基础算法】单链表的OJ练习(3) # 移除链表元素 # 相交链表 #
文章目录前言移除链表元素相交链表写在最后前言 本章的OJ练习也是相对简单的,只要能够理解解题的思路,并且依照这个思路能够快速的写出代码,我相信,你的链表水平已经足够了。 对于OJ练习(2) : ->传送门…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...

高效的后台管理系统——可进行二次开发
随着互联网技术的迅猛发展,企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心,成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统,它不仅支持跨平台应用,还能提供丰富…...
验证redis数据结构
一、功能验证 1.验证redis的数据结构(如字符串、列表、哈希、集合、有序集合等)是否按照预期工作。 2、常见的数据结构验证方法: ①字符串(string) 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...

RabbitMQ 各类交换机
为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息:将消息…...
学习 Hooks【Plan - June - Week 2】
一、React API React 提供了丰富的核心 API,用于创建组件、管理状态、处理副作用、优化性能等。本文档总结 React 常用的 API 方法和组件。 1. React 核心 API React.createElement(type, props, …children) 用于创建 React 元素,JSX 会被编译成该函数…...
Linux信号保存与处理机制详解
Linux信号的保存与处理涉及多个关键机制,以下是详细的总结: 1. 信号的保存 进程描述符(task_struct):每个进程的PCB中包含信号相关信息。 pending信号集:记录已到达但未处理的信号(未决信号&a…...