欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c#中winform内嵌webbrowser控件基本使用

程序员文章站 2022-06-07 13:14:16
...
//WebBrowser控件禁用脚本错误
webBrowser1.ScriptErrorsSuppressed = true;

//加载网页
webBrowser1.Url = new Uri(“https://www.csdn.net/);

//网页加载完毕事件
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

//根据标签id获取表单元素,但网页中存在iframe标签会获取不到元素
HtmlElement webBrowser1.Document.GetElementById("txtUserName");

//获取网页中所有iframe
HtmlWindowCollection winCollection = webBrowser1.Document.Window.Frames;

//遍历所有frame
foreach (HtmlWindow htmlWindow in winCollection)
{
	//根据标签id获取iframe中的表单元素
	HtmlElement clsbdmh6ele = htmlWindow.Document.GetElementById("clsbdmh6");
}

//获取某个元素下的所有子元素
HtmlElementCollection collection = webBrowser1.Document.GetElementById("menu").Children

//遍历所有HtmlElement
foreach (HtmlElement item in collection)
{
	if (item.FirstChild.InnerText == "车辆档案")
    {
    	////获取表单元素的某个属性
    	string rel = item.FirstChild.GetAttribute("rel");
        string rel1 = item.FirstChild.GetAttribute("rel1");
        string className = item.FirstChild.GetAttribute("cs-navi-tab");
        Object[] args = new string[2] { rel1, rel };
        //调用页面中的JavaScript
        webBrowser1.Document.InvokeScript("addTab", args);
        }
     }
}

//调用按钮点击事件
htmlWindow.Document.GetElementById("save").InvokeMember("Click");

//解决点击网页按钮后,网页还没加载完,导致后面代码获取不到表单元素问题的简(无)单(脑)办法
private void Delay(int Millisecond)
{
	DateTime current = DateTime.Now;
	while (current.AddMilliseconds(Millisecond) > DateTime.Now)
	{
		Application.DoEvents();
	}
	return;
}