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博客

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(2)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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