| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> Selenium实战滑块验证码登陆网站 -> 正文阅读 |
|
[开发测试]Selenium实战滑块验证码登陆网站 |
目录 问题背景很久以前有个网站上数据交互自动化,需要登录后才能进行,就临时学了selenium,现在也用不上了,就总结一下。 整个交互流程:先是输入密码,然后鼠标拖动验证码滑块完成人机验证,登录完成后通过cookie或者session授权进行数据交互。 问题分析这个问题难点在于: 1、如何驱动网页的鼠标键盘交互,拿到网页中的重要信息; 2、滑块验证码正确滑动以及人手的轨迹模拟; 第一个问题中键鼠交互其实有很多方案可以实现,不论是使用第三方库还是通过系统API等方案,但是后需要拿cookie的话,就麻烦了,毕竟是不在一个进程里的逻辑;所以综合起来,用selenium最方便,Selenium可以说是非常强大的工具了。 第二个问题,在交互技术底层,其实是形成一个请求数据包提交到服务器来完成人机验证工作的。目前其实已经有很多个方案,解决问题可以从模拟人机交互入手,也可以从数据包构造入手。 环境部署安装环境(注意Chromedriver版本与Chrome版本一致):selenium 安装与 chromedriver安装 - Rogn - 博客园 [小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建 - 小北@Alan - 博客园 user data保持:selenium设置chrome浏览器保持登录方式两种options和cookie - 后来的后来 - 博客园 webdriver.support版本问题导致4.0版本中ExpectedConditions不可用:c# Selenium ExpectedConditions 不存在_weixin_30256505的博客-CSDN博客 Selenium基础?网页状态机相关: 如何通过Python+Selenium+PhantomJS/Chrome获取HTTP状态和Response Headers_在路上吗-CSDN博客?????? [Selenium] selenium — selenium三种等待方式解读,waituntil sleep等_HK_John的博客-CSDN博客 元素定位和操作: [小北De编程手记] : Lesson 03 - Selenium For C# 之 元素定位 - 小北@Alan - 博客园 python selenium-webdriver 元素操作之鼠标操作(四) - 梦雨情殇 - 博客园 Selenium获取input输入框中值的三种方法_沈伟-测试前行者-CSDN博客 Selenium XPATH详解 - 清风软件测试 - 博客园 在网页中执行JavaScript: Selenium WebDriver中常用到的JavaScript操作_greta_guo的博客-CSDN博客 selenium的操作JS命令的接口JavascriptExecutor的介绍 - 心悦飞飞 - 博客园 selenium webdriver——JS对Input执行输入 - hjhsysu - 博客园 cookie等信息抓取:How to launch chrome with performance logging .net · Issue #1844 · SeleniumHQ/selenium · GitHub 其它: 自动化测试 - Selenium For C# - 随笔分类 - 小北@Alan - 博客园 解决验证码滑块人机交互问题缺口识别目前滑动验证码的缺口方案有两种,一种是原图和缺口图都能被用户看到,一种是只有缺口图传给客户端。(具体哪一种需要分析前端代码) 显然,第一种方案的缺口识别比较简单点,只需两图做一个diff再去掉一些噪点即可; 第二种缺口图稍微麻烦点,需要识别缺口位置,通过传统的图像识别技术识别缺口形状,或者利用颜色突变等方法结合基本都能解决;而神经网络的方法,基本一个小型的检测网络也能搞定了,训练库的生成都可以通过网图来随机生成。 轨迹提交初阶,简单滑动一般的滑动验证码,能完成滑块的正确填充即可,可以根据自己的喜好生成滑动轨迹,注意下selenium的鼠标行为提交时有延迟。 高阶,对抗 反机器人技术现在的一些滑块验证码技术,有的存在反机器人技术,就比较麻烦。 这里采用预设函数+简易的强化学习方案来优化轨迹提交成功率,需要调试过拟合的问题。 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 4:49:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |