添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1,input输入value失败,里面要套了个事件,再变换输入value。后来用浏览器开发工具,研究js代码,太难了,涉及react.js(猜测)。

2,滑动往右拖的时候,快点终点时就要提前必须慢慢的拖过去,快得话,会滑动失败。

C#代码:

string ph = textBox1.Text.Trim();
//拼接js要的输入内容
string code = "let input = document.getElementById(\"phone\");input.value = '" + ph + "';let event = new Event('input', { bubbles: true });event.simulated = true;let tracker = input._valueTracker;if (tracker) {tracker.setValue(input); }input.dispatchEvent(event);setTimeout(() => {document.getElementsByClassName('timer-button')[0].click();}, 3000);";
    Task task = Task.Run(() =>
        chromiumWebBrowser1.GetMainFrame().ExecuteJavaScriptAsync(code);
    if (task.Wait(5000))
        Task.Run(() =>
            Thread.Sleep(5000);
            //浏览器执行js代码
            var btss = csbrowser.EvaluateScript(chromiumWebBrowser1.GetMainFrame(), Properties.Resources.CSS_JS2);
            csbrowser.WaitBusy(chromiumWebBrowser1, 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 = chromiumWebBrowser1.GetMainFrame().Browser.GetHost();
            //按住鼠标鼠标左键
            chromiumWebBrowser1.GetBrowserHost().SendMouseClickEvent(x + 15, y + 20, MouseButtonType.Left, false, 1, CefEventFlags.None);
            //滑动数据
            List<int> removeInt = new List<int>();// 160
            removeInt.Add(130);
            removeInt.Add(20);
            removeInt.Add(30);
            removeInt.Add(30);
            removeInt.Add(10);
            //遍历滑动距离
            foreach (int item in removeInt)
                x = (x + item);
                Thread.Sleep(30);
                host.SendMouseMoveEvent(x, y, false, CefEventFlags.LeftMouseButton);
            //抬起鼠标左键
            host.SendMouseClickEvent(x, y, MouseButtonType.Left, true, 1, CefEventFlags.None);
catch (Exception)
    throw;

js代码,获取坐标。

var obj = document.getElementsByClassName("boxStatic ");
var es = document.getElementsByTagName("div");
for (var i = 0; i < es.length; i++) {
    if (es[i].className.indexOf("boxStatic") >= 0 ) {
        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();

该文为原创文章,转载请注明原文出处
本文章博客地址:C# CefSharp 输入内容,点击按钮,并且滑动。

Author:靓仔建gaolian1025

(待业中,希望帮助到各位,大家的支持是创作最大动力!)

为了实现滑动的功能,需要用到【Timer对象】的帮助。为此需要在【窗体类的构造函数】里面添加一下代码: //必须要在此显式声明这个用于滑动的Timer控件,才能减少每次调用的延迟。 myTimer = new Timer(); myTimer.Interval = intTimerInterval; SetCursorPos(x, y); mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.Absolute), 0, 0, 0, IntPtr.Zero); mouse_event((int)(MouseEventFlags.LeftUp | MouseEventFlags.Absolute), 0, 0, 0, IntPtr.Zero); finally SetCursorPos(p.X, p.Y); private void Form1_Load(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) Point p = this.button2.PointToScreen(button2.Location); AutoClick(p.X , p.Y ); private void button2_MouseClick(object sender, MouseEventArgs e) button2.Text = "哈哈,点击了!!!!!!!";
首先,本文所有 代码已经提交到github,需要的可以直接从github获取:https://github.com/starts2000/CefSharp,希望可以帮助到有需要的朋友们。 CEF 简介 CEF is a BSD-licensed open source project founded by Marshall Greenblatt in 2008 and based on the...
document.getElementsByClassName('btn_addtocart')[0].click(); document.querySelector('.btn_addtocart').click(); document.getElementsByClassName('btn_addtocart')[0].InvokeMember("click");
本程序基于CefSharp实现自动打开一个网站,自动输入账号密码自动注册。然后跳转到商品页自动输入评论的内容然后提交。完全模拟人为在浏览器的所有操作,包括自动输入,自动点击等操作。 本解决方案可以应用于网络爬虫,刷单,刷评论,参与自动秒杀活动。抢票程序等等。 最终效果如下:
CefSharp是一个用于Chromium Embedded Framework (CEF)的.NET封装库,它允许你在.NET应用程序中嵌入Chrome浏览器的功能。如果你想要在C#中模拟点击操作,通常是在处理网页元素时,你可以利用CefSharp提供的API来控制浏览器内容。 例如,你可以通过以下步骤模拟鼠标点击: 1. 首先,你需要获取到要点击的元素,这通常是通过JavaScriptExecutor执行JavaScript代码来获取元素,比如`IWebBrowser.ExecuteScriptAsync("document.getElementById('yourElementId')")`。 2. 然后,当你得到了元素的句柄,如`IDialog`、`IScriptDialog` 或者其他的DOM对象,可以调用`Focus()` 方法让焦点移到该元素上。 3. 使用`MouseInput.SendMouseClick()` 方法,传入适当的参数,如左键单击(`MouseButtons.Left`)、坐标(`Point` 对象)以及额外的行为选项(如 `HitTestContent` 表示是否只在内容区域内触发点击)。 ```csharp using CefSharp.WinForms; var elementHandle = ExecuteScriptAsync(...); elementHandle.Wait(); // 模拟左键单击,坐标为屏幕中心 var point = new Point(Screen.PrimaryScreen.Bounds.Width / 2, Screen.PrimaryScreen.Bounds.Height / 2); mouseInput.SendMouseClick(point, MouseButtons.Left, Control.MouseButtonGetState()); 请注意,实际操作可能会因版本差异略有不同,一定要查阅最新的官方文档。