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;
}
上一篇: es 日期范围查询(java)