循环遍历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" .

循环遍历webbrowser

c是一个不同于web浏览器的控件,因此as cast失败。您可以使用OfType只获取web浏览器

foreach (var c in this.Controls.OfType<WebBrowser>())

否则你需要处理NullReferenceException

WebBrowser t = c as WebBrowser;
if(t == null)
    continue;