首页 > 编程语言 >c# WinForm 引用 Chrome 模拟操作

c# WinForm 引用 Chrome 模拟操作

时间:2023-07-28 11:01:40浏览次数:30  
标签:c# chromiumWebBrowser1 private Chrome MainFrame result GetBrowser var WinForm

Nuget CefSharp.WinForms

 

public Form1()
        {
            InitializeComponent();


            chromiumWebBrowser1.LoadingStateChanged += ChromiumWebBrowser1_LoadingStateChanged;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string url = "http://airadiov2.redefine.ltd/Login";
            chromiumWebBrowser1.LoadUrl(url);
        }

        private void ChromiumWebBrowser1_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
        {
            this.BeginInvoke(new Action(() =>
            {
                this.Text += e.IsLoading.ToString();
            }));
        }

        private void button2_Click(object sender, EventArgs e)
        {
            var result = chromiumWebBrowser1.GetBrowser().MainFrame.GetSourceAsync();

            //System.Threading.Thread.Sleep(10000);
            this.Text = result.Result;

            //browser.MainFrame.ExecutejavascriptAsync();

        }

        private void button3_Click(object sender, EventArgs e)
        {
            chromiumWebBrowser1.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('UserName').value='';");
            chromiumWebBrowser1.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('Password').value='';");
            chromiumWebBrowser1.GetBrowser().MainFrame.ExecuteJavaScriptAsync("document.getElementById('bnt_login').click();");

            var js = "function aaa(){ return false;}; aaa();";
            var task = chromiumWebBrowser1.GetBrowser().MainFrame.EvaluateScriptAsync(js, null);

            task.ContinueWith(t =>
            {
                if (!t.IsFaulted)
                {
                    //返回结果
                    var response = t.Result;
                    var result = t.Result.Success ? (response.Result ?? "null") : response.Message;

                    MessageBox.Show(result.ToString());
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }

  

 

标签:c#,chromiumWebBrowser1,private,Chrome,MainFrame,result,GetBrowser,var,WinForm
From: https://www.cnblogs.com/liushunli/p/17587016.html

相关文章

  • 《http篇》通过curl库实现http服务
    编译和引用参考链接:https://blog.csdn.net/weixin_44122235/article/details/128969128参考链接里写的非常详细,虽然我只参考了编译和引用的部分,还是建议大家看一下。下载官方(旧):https://curl.haxx.se/download.html官方(新):https://curl.se/download.htmlgithub:https://github.......
  • vue-cli构建Vue3项目
    1、node环境检查node-v//查询Node版本 2、vue-cli版本检查vue-V//查询vue-cli版本npmuninstall-gvue-cli//卸载旧版vue-clinpminstall-gvue-cli//旧版vue-cli2npminstall-g@vue-cli//vue-cli3  其他命令:vue-V//查询vue-cli脚手架版本np......
  • Arm Neoverse N2 reference design Technical Overview
    RDN2Intro本文档是ARM提供给SoC设计人员的一份概述设计文档,较为详细的描述了SoC的方方面面,具有很好的参考意义。SoC的系统架构,硬件互联SoC各block的功能描述、细节描述软件栈概述RDN2的其他参考文档DocumentNameDocumentIDLicenseeonlyAMBA4AXI-StreamPr......
  • Three.js使用InstancedMesh实现性能优化
    1.引言有这么一种场景:需要渲染一座桥,桥有很多桥柱,桥柱除了位置与倾斜角度不完全相同外,其他均相同,由于桥柱数量很大,使用three.js绘制较为卡顿,如何优化?注意,要求后续能选中某个桥柱2.概念2.1合并几何体three.js官方教程里提到,大量对象的优化-three.jsmanual(threejs.org),......
  • DevExpress 按钮列点击多次才出发ButtonClick事件
    解决多次点击才能出现拉框,解决方法把GridView的EditorShowMode的模式选择了Click,应改为MouseDown就好了。图示位置: ......
  • 并发编程-CompletableFuture解析
    1、CompletableFuture介绍CompletableFuture对象是JDK1.8版本新引入的类,这个类实现了两个接口,一个是Future接口,一个是CompletionStage接口。CompletionStage接口是JDK1.8版本提供的接口,用于异步执行中的阶段处理,CompletionStage定义了一组接口用于在一个阶段执行结束之后,要么继......
  • TDengine Cloud 加入 AWS 合作伙伴网络,助力出海企业数字化转型
    近日,全托管的时序数据云平台TDengineCloud正式入驻AWSMarketplace(海外区),用户可通过AWSMarketplace轻松实现TDengineCloud的订阅与部署,以最低的成本搭建最高效的数据处理架构。此外,早在2022年12月,时序数据库(TimeSeriesDatabase)TDengine就已经成功上线了AWSMa......
  • docker-部署redis
    第一步:pull一个redis最新镜像Dockerpullredis第二步:启动一个主redis容器端口6379+挂载dockerrun--restart=always--log-optmax-size=100m--log-optmax-file=2-p6379:6379--nameredis-master-v/DockerContainerProperties/redis/redis-master.conf:/etc/redis......
  • ClickHouse创建表
    创建本地表:CREATETABLEdefault.xxonclusterdefault(`id`Int64COMMENT'id',`plate_code`Nullable(String)COMMENT'板块编号',`plate_name`Nullable(String)COMMENT'板块名称',`date_time`Nullable(String)COMMENT�......
  • HDU1702 ACboy needs your help again! 题解
    #include<iostream>#include<string>#include<queue>#include<stack>usingnamespacestd;intt,n,m;intmain(){cin>>t;while(t--){queue<int>q;stack<int>s;stringop,str......