CefSharp 实现拖拉滑动验证Demo

CefSharp 实现拖拉滑动验证Demo给大伙看看效果。滑动验证

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

该文为原创文章,转载请注明原文出处
本文章博客地址:CefSharp 实现拖拉滑动验证Demo_靓仔建的博客-CSDN博客

author:靓仔建

联系方式:qq(1337489969) 微信(gaolian1025)

给大伙看看效果。

CefSharp 实现拖拉滑动验证Demo
滑动验证

实现效果思想逻辑:

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-button
    if (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博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191793.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TOF相机总结[通俗易懂]

    TOF相机总结[通俗易懂]转载也要顶! 关于tof相机很好的总结~  2013-05-1113:22:30|  分类:默认分类|  标签:|字号大中小 订阅1.1TOF初探   TOF是Timeofflight的简写,直译为飞行时间的意思。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后用传感

    2022年5月26日
    29
  • 添加数据时,页面的validateRequest属性设置

    添加数据时,页面的validateRequest属性设置有的时候,添加数据会出错,时因为validateRequest属性默认为true。这个是进行非法数据验证的。我们可以讲它关闭,例如:

    2022年6月3日
    30
  • Unity+OpenCV 人脸识别追踪

    Unity+OpenCV 人脸识别追踪项目需要一个人脸识别追踪的效果,所以查找了一些资料,自己做了一个功能,基本效果已经实现了。首先项目需要OpenCV的开发环境,所以首先一定要在开发电脑上装上OpenCV的开发环境,流程很简单,直接去http://opencv.org/downloads.html官网下载OpenCV的安装文件就可以了,然后配置电脑的环境变量。我的电脑是windows操作系统配置好就是这个样子,然后要把用到的

    2022年5月29日
    130
  • 一分钟制作U盘版BT3 – 有图滴儿 bt3激活成功教程教程

    一分钟制作U盘版BT3 – 有图滴儿 bt3激活成功教程教程一分钟制作BT3U盘版方便,快捷简单无效不退款光盘版BT3,大概694MB,直接刻盘,然后用光盘引导,就可以进入bt3,连接为:http://ftp.heanet.ie/mirrors/back

    2022年7月2日
    29
  • vue新建项目,目录文件解释「建议收藏」

    1.2.1、build文件夹是保存一些webpack的初始化配置。config文件夹保存一些项目初始化的配置。2、node_modules是npm加载的项目依赖的模块。3、src目录是我们要开发的目录,打开是这样的:其中assets:用来放置图片components:用来放组件文件app.vue:是项目入口文件,代码如下:App.vue相当于…

    2022年4月6日
    61
  • STP协议详解_STP

    STP协议详解_STP1、生成树技术背景交换机单线路上联,存在单点故障,上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,业务将会中断。为了使得网络更加健壮、更具有冗余性,将拓扑修改为如下图所示。接入层交换机采用双链路上联到两台汇聚设备,构成一个物理链路冗余的二层环境,解决了单链路及单设备故障问题。但是这样也带来了一个大问题,就是二层物理环境存在环路。二层环路的危害是严重的,有可能会导致广播…

    2025年6月1日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号