循环遍历webbrowser
本文关键字:webbrowser 遍历 循环 | 更新日期: 2023-09-27 18:06:19
此代码适用于单个webBrowser1
HtmlElementCollection links = webBrowser1.Document.GetElementsByTagName("a");
foreach (HtmlElement link in links)
{
if (link.OuterHtml.ToString().Contains("E-mail"))
{
link.InvokeMember("click");
}
}
但是我想把它用于每个webBrowser,所以我管理了这样的东西:
foreach (Control c in this.Controls)
{
WebBrowser t = c as WebBrowser;
HtmlElementCollection links = t.Document.GetElementsByTagName("a");
foreach (HtmlElement link in links)
{
if (link.OuterHtml.ToString().Contains("E-mail"))
{
link.InvokeMember("click");
}
}
}
但是它说"Object reference not set to an instance of an object"
.
c
是一个不同于web浏览器的控件,因此as
cast失败。您可以使用OfType
只获取web浏览器
foreach (var c in this.Controls.OfType<WebBrowser>())
否则你需要处理NullReferenceException
WebBrowser t = c as WebBrowser;
if(t == null)
continue;