C# WebBrowser 组件常用操作与自动化示例

阿麦
阿麦
发布时间:2026-10-13| 3人浏览过
原创

在C# Windows Forms 开发中,WebBrowser 控件常用于内嵌网页或进行简单的网页交互。本文总结了该控件的几个核心操作场景,包括判断网络连接、自动填写表单模拟登录、模拟用户点击链接以及调用页面内的 JavaScript 函数。

判断当前网络连接状态

在进行网页抓取或自动操作前,通常需要确认设备是否处于在线状态。可以通过调用 InternetGetConnectedState 外部接口来实现这一检查:

private bool IsConnectedToInternet()
{
    int Desc;
    return internet.InternetGetConnectedState(out Desc, 0);
}

设置默认导航页面

初始化时,可以让 WebBrowser 直接跳转到指定 URL。例如:

webBrowser1.Navigate(new Uri("http://www.yoursiteweb.com/copy.aspx"));

模拟登录流程

实现自动登录的核心思路是获取页面上的表单元素,填入账号密码,并触发提交按钮。以下是完整步骤:

第1步:填入账号与密码

通过元素 ID 定位输入框,并设置其文本内容:

webBrowser1.Document.GetElementById("id").InnerText = txtuser.Text.ToString().Trim(); // 填入用户名
webBrowser1.Document.GetElementById("passwd").InnerText = txtpwd.Text.ToString().Trim(); // 填入密码

第2步:定位并提交登录表单

找到对应的 Form 容器(假设 Form name 为 "frmLogin"),调用其 InvokeMember("submit") 方法触发提交动作:

HtmlElement formLogin = webBrowser1.Document.Forms["frmLogin"];
formLogin.InvokeMember("submit");

第3步:等待页面加载与后续操作

提交后需短暂等待以便 Session 建立和页面跳转完成,随后可执行登录后的动作(如点击特定链接)。注意:即使看似直接跳转,保持会话连续性的最佳方式仍是模拟真实的 UI 交互:

Thread.Sleep(5000); // 等待服务器响应及页面重定向
herfclick("http://www.yoursiteweb.com/upload.aspx"); // 登录后首跳页面
herfclick("http://www.yoursiteweb.com/copy.aspx"); // 后续目标页面

模拟点击页面中的链接

若需按条件触发特定的超链接(如根据 URL 匹配),可遍历文档中的所有 A 标签:

private void herfclick(string url)
{
    for (int i = 0; i < webBrowser1.Document.All.Count; i++)
    {
        // 检查标签是否为 A 且 href 属性匹配目标 URL
        if (webBrowser1.Document.All[i].TagName == "A" && 
            webBrowser1.Document.All[i].GetAttribute("href").ToString().Trim() == url)
        {
            webBrowser1.Document.All[i].InvokeMember("click"); // 引发 Click 事件
            break;
        }
    }
}

调用网页中的 JavaScript 函数

通过 InvokeScript 方法,C# 代码可以直接执行页面上已定义的 JS 函数,并可传递参数:

private void callJsMethod(string jsfun, string jsParameter)
{
    HtmlDocument doc = webBrowser1.Document;
    // 调用名为 jsfun 的函数,传入参数 jsParameter
    doc.InvokeScript(jsfun, new object[] { jsParameter });
}

填充复杂表单数据

对于包含多种控件的表单(如单选按钮、文本域),可按以下步骤操作:

private void filldate(string txt)
{
    // 1. 获取指定名称的表单对象
    HtmlElement frmWord = webBrowser1.Document.Forms["frmWord"];
    
    // 2. 获取所有 TEXTAREA 元素集合
    HtmlElementCollection txtarea = frmWord.GetElementsByTagName("TEXTAREA");
    
    // 3. 获取所有 INPUT 元素集合
    HtmlElementCollection radio = frmWord.GetElementsByTagName("INPUT");
    
    // 4. 模拟点击第3个单选框(索引为2)
    radio[2].InvokeMember("click"); 
    
    // 5. 将文本填入第一个文本域
    txtarea[0].InnerText = txt.ToString();
}
以上就是 C# WebBrowser 组件实现自动登录、模拟点击与执行 JS 的详细内容,更多关于 C# 网页自动化操作的资料请关注本站其它相关文章!
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。