爽,我终于掌握了selenium图片滑块验证码

2023-11-01

因为种种原因没能实现愿景的目标,在这里记录一下中间结果,也算是一个收场吧。这篇文章主要是用selenium解决滑块验证码的个别案列。

思路:

  • 用selenium打开浏览器指定网站

  • 将残缺块图片和背景图片下载到本地

  • 对比两张图片的相似地方,计算要滑动的距离

  • 规划路线,移动滑块

01实现步骤  用selenium打开浏览器浏览指定网站

1、找到chromedriver.exe的路径

点击开始找到谷歌图标==》右键更多==》打开文件位置==》右键谷歌快捷方式==》属性 ==》打开文件所在的位置 ==》复制路径

2、代码

02 将残缺块图片和背景图片下载到本地

 1、找到图片位置

打开网页进入开发者工具,找到图片位置

2、代码

03 对比两张图片的相似地方,计算要滑动的距离

1、用matchTemplate获取移动距离

因为背景图片中的残缺块位置和原始残缺图的亮度有所差异,直接对比两张图片相似的地方,往往得不到令人满意的结果,在此要对两张图片进行一定的处理,为了避免这种亮度的干扰,笔者这里将两张图片先进行灰度处理,再对图像进行高斯处理,最后进行边缘检测。

将JPG图像转变为4通道(RGBA)

2、代码

 3、检验效果

为了验证思路和方法是否得当,这里将滑块图片与背景图片进行拼接,为后面埋下一个小坑。

04 规划路线,移动滑块

 1、点击滑块移动 

        用第3节已经获取到的距离,点击滑块进行移动

神奇的事情是,坑来了,没有匹配成功。

2、匹配失败原因

这里有以下两点原因:

  • 图片尺寸发生了变化,距离要进行转换。

  • 滑块滑动时,滑块和残缺块的相对位置有变动。

首先解决图片尺寸变化问题,找到网页中图片大小:345x172.500

下载到本地图片大小:480x240

所以要对距离进行以下处理:

关于第二个问题,这里没有找到很好的测量工具测量出来,好在验证码对位置精确度要求不高,就一个个试数吧。

05  补充

 在对极验验证码进行学习中,有的网站对移动轨迹进行了验证,如果滑动太快,也会被识别出机器操作,为了模拟人工操作,出色的程序员写出了一个魔幻移动轨迹

举个例子:我们可以先超过目标,再往回移动。

06 完整代码

资源分享

下面这份资源,对于想学习【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望也能帮助到你!

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爽,我终于掌握了selenium图片滑块验证码 的相关文章

随机推荐

  • 机器学习之k 均值聚类教程(代码实战,详解核心算法)

    k 均值聚类 1 引入依赖 import numpy as np import matplotlib pyplot as plt 调用sklearn中的方法直接生成数据 from sklearn datasets samples gener
  • vue2 ElementUI 表单标签、表格表头添加问号图标提示

    文章目录 1 问题背景 2 element ui悬浮提示定义 3 基础 4 延申 5 参考 1 问题背景 使用element ui有时候需要对表格的表头 表单的标签进行自定义 添加问号的悬浮提示 要达到的效果 如图所示 2 element
  • stmmac ethernet

    学习笔记 网卡驱动 从这里看起stmmac register platform 注册一个平台驱动 const struct stmmac of data meson dwmac data setup meson dwmac setup fi
  • 递归与递归算法实例(java实现)

    一 递归介绍 递归算法 英语 recursion algorithm 在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法 绝大 多数编程语言支持函数的自调用 在这些语言中函数可以通过调用自身来进行递归 定义 一个方法在执
  • java反射机制

    1 类加载机制 启动JVM 加载字节码 当调用java命令来运行某个java程序时 该命令将会启动一个JVM进程 同一个JVM中的所有程 变量都处于同一个进程中 共享该JVM的内存区域 当出现以下情况时 JVM会退出 1 程序正常执行结束
  • Linux源码编译即黑客帝国屏保cmatrix安装

    源码编译 为什么源码编译 yum的优缺点 yum是 动去yum源中寻找rpm包下载且安装 动解决依赖 动指定安装路径 须 为 预适合初学者 不 考虑依赖关系即可安装使 部分软件 功能由rpm包控制 这个rpm包也是别 编译好的 版本可能较低
  • Linux系统中快速生成指定大小的文件

    工作中遇到这样的情况 软件存储数据 数据有复写机制 当系统磁盘不足500M时 会按照逻辑删除旧数据 测试该功能时 系统磁盘剩余空间还比较大 不满足复写功能触发条件 所以需增加磁盘空间的占用来触发复写功能 查看目录下内容 此时目录下为空 ro
  • IDEA 文件不生效 红色

    之前工程在IDEA里都是好好的 也不知道为啥 突然就开始有一个文件的所有定义在其他文件里都找不到了 显示为红色 跳转不到定义 而事实上那个文件是存在的 我好久都没动它了 同一个目录下的其他文件都是正常的 网上搜索IDEA 文件 红色 很多人
  • The connection to the server localhost:8080 was refused - did you specify the right host or port

    根据这个教程https kuboard cn install install k8s html安装K8S的过程中 我在worker node master node都安装好了教程里所需的东西 但是在master node启动kuboard进
  • 和你说清楚什么是RoadMap/产品路线图

    Roadmap 产品蓝图如何设计 www woshipm com 2015 03 26 Roadmap通常翻译为 路线图 或 蓝图 目前并没有一个公认的定义 在这里 我们认为Roadmap是产品经理进行产品管理的一个中长期规划 也称路标规划
  • xss-labs部分题目

    xss labs level 1 第一关是搜索到的教程 因为啥都不明白 然后就是没有搜索框 就直接使用get的方式传值 归根结底还是html 让name test 输入的内容代替到了的是test的那一处 输入name test gt 然后弹
  • springboot只对某个特定的类或属性进行自定义的序列化和反序列化操作

    如果你需要对某个特定的类或属性进行自定义的序列化和反序列化操作 可以按以下步骤使用自定义的 Jackson ObjectMapper 进行相应的配置和定制化 创建一个继承自 Jackson 的 StdSerializer 或 StdDese
  • 【Git学习】7.分支(branch)的合并(merge)冲突

    在xiaokeai 1 py修改一下 添加提交 可以使用commit am 转到dev分支 dev分支的xiaokeai 1 py 修改一下 这个修改和master分支不一样 添加提交 回到master分支 还记得master分支的xiao
  • 理请求时出现未知错误.服务器返回的状态码为: 500,在服务器上处理请求时出现未知错误。服务器返回的状态码为500...

    操作方法 为页面的ScriptManager控件添加EnablePartialRendering false 的属性 此方法不是直接解决或规避问题的 是为了将详细的页面错误显示出来 以便找到需要修正 的地方 个人觉得这才是正道嘛 不能躲避错
  • 02 Oracle 批量导出建表语句和数据

    1 点击 工具 导出表 2 点击SQL插入 然后选中要导出的表 如果不选择表则导出全部表 选择导出文件的位置 点击导出 转载于 https www cnblogs com xiaonengxiong p 11514575 html
  • Console输出时报log4j警告解决办法

    log4j WARN Please initialize the log4j system properly org springframework context support ClassPathXmlApplicationContex
  • Spring动态代理的两种方式

    Spring动态代理的两种方式 1 Spring创建的动态代理类在哪 1 1 什么叫动态字节码技术 2 JDK的动态代理 2 1 Proxy newProxyInstance 法参数详解 2 1 编码 3 CGlib的动态代理 3 1 编码
  • 浏览器地址栏输入一个网址到页面展示网页内容的这段时间内,浏览器和服务器都发生了什么事情?

    1 在接受到用户输入的网址后 浏览器会开启一个线程来处理这个请求 对用户输入的URL地址进行分析判断 如果是HTTP协议就按照HTTP方式来处理 2 调用浏览器引擎中的对应方法 比如WebView中的loadUrl方法 分析并加载这个URL
  • UE5 添加插件

    1 编辑 gt 插件 gt 添加 2 选择插件类型 输入插件名称 设置插件目录 点击 创建插件 3 在工程目录下生成Plugins目录 而且在Plugins目录下生成各个插件的目录
  • 爽,我终于掌握了selenium图片滑块验证码

    因为种种原因没能实现愿景的目标 在这里记录一下中间结果 也算是一个收场吧 这篇文章主要是用selenium解决滑块验证码的个别案列 思路 用selenium打开浏览器指定网站 将残缺块图片和背景图片下载到本地 对比两张图片的相似地方 计算要