CefSharp 实现拖拉滑动验证Demo
该文为原创文章,转载请注明原文出处
本文章博客地址:CefSharp 实现拖拉滑动验证Demo_靓仔建的博客-CSDN博客
author:靓仔建
联系方式:qq(1337489969) 微信(gaolian1025)
给大伙看看效果。
实现效果思想逻辑:
1,先用js代码获取要拖拉的HTML元素的位置x和y
2,在C#代码中设置鼠标左键点击按住事件SendMouseClickEvent,声明要一点一点要拖拉距离List,然后遍历这个List的一个距离给要拖拉事件SendMouseMoveEvent
关键C#代码:
private void button8_Click(object sender, EventArgs e){ChromiumWebBrowser cw = chromiumWebBrowser1;Task.Run(() =>{listrequest.Clear();cw.Load("file:///E:/BaiduYunDownload/%E6%BB%91%E5%8A%A8%E9%AA%8C%E8%AF%81%E7%A0%81%E7%A0%94%E7%A9%B6/%E6%BB%91%E5%8A%A8html.html");csbrowser.WaitBusy(cw, 30, 1000);var result = cw.GetMainFrame().EvaluateScriptAsync(Properties.Resources.CSS_JS);var btss = csbrowser.EvaluateScript(cw.GetBrowser().MainFrame, Properties.Resources.CSS_JS);csbrowser.WaitBusy(cw, 30, 1000);List<string> lisTT = btss.Split(',').ToList();int x = int.TryParse(lisTT[0], out int result_X) ? result_X : 0;int y = int.TryParse(lisTT[1], out int result_Y) ? result_Y : 0;var host = cw.GetBrowser().GetHost();cw.GetBrowserHost().SendMouseClickEvent(x, y, MouseButtonType.Left, false, 1, CefEventFlags.LeftMouseButton);List<int> removeInt = new List<int>();removeInt.Add(10);removeInt.Add(50);removeInt.Add(10);removeInt.Add(30);removeInt.Add(40);removeInt.Add(30);removeInt.Add(30);removeInt.Add(40);removeInt.Add(60);foreach (int item in removeInt){x = (x + item);Thread.Sleep(300);host.SendMouseMoveEvent(x, y, false, CefEventFlags.LeftMouseButton);}host.SendMouseClickEvent(x, y, MouseButtonType.Left, true, 1, CefEventFlags.LeftMouseButton);//抬起鼠标左键});}
关键js代码:
var obj = document.getElementsByClassName("btn");
var es = document.getElementsByTagName("div");for (var i = 0; i < es.length; i++) {//arrow-right-icon arrow-buttonif (es[i].className == "btn") {obj = es[i];break;}}function GetObjPos(ATarget) {var target = ATarget;var pos = new CPos(target.offsetLeft, target.offsetTop);target = target.offsetParent;while (target) {pos.x += target.offsetLeft;pos.y += target.offsetTop;target = target.offsetParent;}return pos;
}
function CPos(x, y) {this.x = x;this.y = y;
}[ GetObjPos(obj)['x'], GetObjPos(obj)['y']].toString();
该文为原创文章,转载请注明原文出处
本文章博客地址:CefSharp 实现拖拉滑动验证Demo_靓仔建的博客-CSDN博客
CefSharp 实现拖拉滑动验证Demo相关推荐
- vue项目中引入阿里云滑动验证
注册阿里云账号 参照滑动验证demo 滑动验证在vue中使用步骤 1.在vue-cli安装的项目中,index.html页面引入js <html><head><meta ...
- Android自定义滑动验证条
*注:不知道为什么,h5的标签在这里没用了,所以我也只能用Markdown的语法来写了 项目地址: https://github.com/994866755/handsomeYe.seekbar.gi ...
- 滑动验证+短信验证码接入=复制粘贴(Java)
PC版滑动验证的实现 简介 滑动验证是基于人机识别技术开发的智能验证码产品.用户通过简单的右滑交互,无需思考即可通过验证. 资源引入说明 使用PC版滑动验证码,需要引入以下js资源,为保证服务功能最优 ...
- selenium模拟geetest极验滑动验证
前言 前一阵子打球认识了一个小学生,为了骗他钱,吹了好半天,什么盗取心上人的QQ密码,吃鸡外挂,学校饭卡无限充值,最终达成交易10块钱帮他刷QQ赞. 回家赶快百度研究了一下,原来刷赞很简单:很多网站都 ...
- spring boot+ geetest滑动验证
geetest滑动验证 最近公司为了安全,在登录注册,发送短信等需要验证的地方改为用滑动验证,再此记录一下 一.注册账号极验官网 进去以后找到 ID和key值需要记住,代码中需要配置 二.下载demo ...
- 安卓图片滑动验证模块
最近想把工作这两年的东西好好写一写,一直觉得自己好像没做什么东西一样,写一写也能给自己一点自信,当然更像是一次总结. 安卓滑动验证模块是去年一个需求做的,当时也只是从网上找了一个不错的博客 cv 大法 ...
- “偷懒”的表单验证Demo
我们在做开发时,经常要做表单验证,比如验证文本框必须填内容时,而文本框又很多时,传统的做法是逐个判断: if (form1.name.value == "") { alert(&q ...
- 爬虫:滑动验证解决方法及python实现
爬虫时遇到滑动验证,基本思路是通过selenium操作浏览器,将滑动验证的原始图片和缺口图片进行对比,找出缺口位置,然后在利用selenium模拟拖动滑块,达到验证的目的.下面就以猪八戒网为例,进行操 ...
- python写一个自动登录脚本_Python 实现自动登录+点击+滑动验证功能
需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了 在这里我模拟了csdn的登录过程 ** 1**.首先打开网页,用户名+密码登录,然后定位用户名输入框,和密码 ...
- python自动登录教程_Python 实现自动登录+点击+滑动验证功能
需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了 在这里我模拟了csdn的登录过程 ** 1**.首先打开网页,用户名+密码登录,然后定位用户名输入框,和密码 ...
最新文章
- 如何在DataGrid里面产生滚动条而不滚动题头
- 99%高精度、毫秒级延迟,AI便携式神经假肢让截肢14年患者运动自如
- 算法 - pyhton - 二分查找
- 包银消费CTO汤向军:消费金融大数据风控架构与实践
- c语言对分查找实验报告,C语言实验指导.doc
- go.js中的图标(icons)的使用
- 编程挑战系统的输入和输出详细说明
- x86架构下 CF与OF标志位 带符号和无符号运算 详解
- 【EasyNetQ】- 使用Future Publish调度事件
- 前端学习(3311):redux的state hook对象
- 4-输出基本数据类型
- hadoop3.1.2 配置 3台 完全分布式
- 适合初学者的struts简单案例
- JavaScript的面向对象原理之原型链
- Cesium应用篇:3控件(1)Clock
- Java内存模型与共享变量可见性
- 数据清洗有哪些方法?
- 磁性能测试标准和项目有哪些
- python100个必备包_这套python教程超详细,包你1小时入门Python,100天摇身变大牛...
- shell 脚本切换用户执行当前脚本命令