CefSharp 实现拖拉滑动验证Demo

3 篇文章 1 订阅

该文为原创文章,转载请注明原文出处
本文章博客地址: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-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博客

该文为原创文章,转载请注明原文出处

Author:靓仔建 w: gaolian1025

(希望能帮助到各位,大家的支持是我创作最大动力!现在待业中,希望大家能推荐一下工作。(专注.net C# 6年))

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值