C# webBrowser

本文介绍了使用C#中WebBrowser控件进行网页交互的方法,包括屏蔽脚本错误、输入表单信息、点击按钮及获取网页元素等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

webBrowser功能:

 

10、屏蔽脚本错误:

将WebBrowser控件ScriptErrorsSuppressed设置为True即可

webBrowser1.ScriptErrorsSuppressed = true;

 

                HtmlElementCollection input = this.webBrowser1.Document.GetElementsByTagName("input");//赋值
                for (int j = 0; j < input.Count; j++)
                {
                    if (input[j].GetAttribute("name").Equals("passWord", StringComparison.OrdinalIgnoreCase))
                    {
                        input[j].Document.GetElementById("passWord").SetAttribute("value", "admin");
                        break;
                    }
                }
                my.Pause(0.1f);
                HtmlElementCollection button = this.webBrowser1.Document.GetElementsByTagName("button");  //點擊button
                for (int j = 0; j < button.Count; j++)
                {
                    if (button[j].GetAttribute("type").Equals("submit", StringComparison.OrdinalIgnoreCase))
                    {
                        button[j].InvokeMember("click");
                        break;
                    }
                }

string webtext = webBrowser1.Document.All[0].InnerText;//取得网页里所有字符串信息

<a class="button" href="javascript:void(0);" οnclick="return modifyCommon(); ">Apply</a>

button[j].InnerText=="Apply";

InnerText就是找的文本的内容。

4、下拉、复选、多选:

复制代码
//下拉框:
secret.SetAttribute("value", "question1");  
//复选框
rememberme.SetAttribute("Checked", "True");
//多选框
cookietime.SetAttribute("checked", "checked");

 

 

 

16、获取元素、表单

复制代码
//根据Name获取元素
public HtmlElement GetElement_Name(WebBrowser wb,string Name)
{
    HtmlElement e = wb.Document.All[Name];
    return e;
}

//根据Id获取元素
public HtmlElement GetElement_Id(WebBrowser wb, string id)
{
    HtmlElement e = wb.Document.GetElementById(id);
    return e;
}

//根据Index获取元素
public HtmlElement GetElement_Index(WebBrowser wb,int index)
{
    HtmlElement e = wb.Document.All[index];
    return e;
}

//获取form表单名name,返回表单
public HtmlElement GetElement_Form(WebBrowser wb,string form_name)
{
    HtmlElement e = wb.Document.Forms[form_name];
    return e;
}


//设置元素value属性的值
public void Write_value(HtmlElement e,string value)
{
    e.SetAttribute("value", value);
}

//执行元素的方法,如:click,submit(需Form表单名)等
public void Btn_click(HtmlElement e,string s)
{

    e.InvokeMember(s);
}

14、让控件聚焦

this.webBrowser1.Select();
this.webBrowser1.Focus();
doc.All["TPL_password_1"].Focus();

 

http://www.cnblogs.com/txw1958/archive/2012/09/24/CSharp-WebBrowser.html

 

<think>好的,我现在需要帮助用户解决关于C#WebBrowser控件的使用方法和常见问题。首先,我需要整理用户提供的引用内容,看看有哪些关键点。 用户引用了五篇资料,分别涉及添加控件、文档加载完成事件、脚本错误抑制、Cookie设置和刷新问题。这些内容涵盖了WebBrowser的基本使用和常见问题。我需要将这些信息结构化,分步骤说明使用方法,然后针对每个常见问题提供解决方案。 首先,使用方法部分应包括添加控件到项目、基本属性和导航功能。引用1提到了如何添加WebBrowser控件到窗体,引用2和5涉及导航和刷新。需要详细说明如何通过代码导航和处理加载完成事件。 接下来是常见问题解决。用户提到的五个引用分别对应不同的问题:脚本错误、Cookie设置、刷新问题、异步加载和禁用菜单栏。需要逐一解释每个问题的解决方法,并引用对应的资料。例如,引用3提到ScriptErrorsSuppressed属性,引用4讨论Cookie设置的方法,引用5解决刷新问题。 需要注意的是,回答要符合系统级指令,使用正确的中文和LaTeX格式。不过这里主要涉及代码和控件使用,可能数学公式较少,但如果有的话,要确保格式正确。此外,生成的相关问题要围绕WebBrowser控件的其他常见问题,比如事件处理、性能优化等。 最后检查引用标记是否正确,每个解决方案后面自然地添加对应的引用标识。确保代码示例正确,比如导航、刷新、Cookie设置的代码片段。同时,语言要简洁明了,结构清晰,分步骤说明,方便用户理解。</think>### C# WebBrowser控件使用方法及常见问题解决 #### 一、基础使用方法 1. **添加控件到项目** 在Visual Studio工具箱右键选择“添加项”,勾选COM组件中的$Microsoft\ Web\ Browser$,拖拽控件至窗体即可[^1]。 代码初始化示例: ```csharp WebBrowser webBrowser = new WebBrowser(); webBrowser.Dock = DockStyle.Fill; this.Controls.Add(webBrowser); ``` 2. **基本导航功能** 使用$Navigate()$方法加载网页: ```csharp webBrowser.Navigate("https://www.example.com"); ``` 监听加载完成事件: ```csharp webBrowser.DocumentCompleted += (sender, e) => { if (webBrowser.ReadyState == WebBrowserReadyState.Complete) { // 执行页面解析操作 } };[^2] ``` #### 二、常见问题解决方案 1. **脚本错误弹窗** 设置$ScriptErrorsSuppressed = true$可屏蔽脚本错误提示[^3]: ```csharp webBrowser.ScriptErrorsSuppressed = true; ``` 2. **Cookie设置问题** 通过WinAPI注入Cookie数据[^4]: ```csharp [DllImport("wininet.dll")] public static extern bool InternetSetCookie(string url, string name, string data); InternetSetCookie("https://example.com", "sessionID", "abc123"); webBrowser.Navigate("https://example.com"); ``` 3. **页面强制刷新** 修改URL参数触发刷新[^5]: ```csharp webBrowser.Navigate(url + "?t=" + DateTime.Now.Ticks); ``` 4. **异步加载检测** 通过$IsBusy$属性判断加载状态: ```csharp if (!webBrowser.IsBusy && webBrowser.ReadyState == WebBrowserReadyState.Complete) { // 安全操作DOM }[^2] ``` 5. **禁用内置菜单栏** 部分属性实际未实现,需通过禁用上下文菜单实现: ```csharp webBrowser.IsWebBrowserContextMenuEnabled = false; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值