GetElementsByTagName无法运行

时间:2016-06-21 17:43:49

标签: c#

此代码无法运行,并出现以下错误:

  

未处理的类型' System.NullReferenceException'发生在Miner_W.exe

     

附加信息:未将对象引用设置为对象的实例。

    public void obturl()
    {
        string url="http://www.google.com";
        WebBrowser wb = new WebBrowser ();
        wb.Navigate (new Uri (url));
        HtmlElementCollection elementcolls = wb.Document.GetElementsByTagName("img");
        foreach (HtmlElement elementcoll in elementcolls)
        {
            listBox1.Items.Add(elementcoll.GetAttribute("scr"));
        }
        /*string result = elementcoll[i].GetAttribute("src");*/
    }

2 个答案:

答案 0 :(得分:1)

没有scr属性。我想你的意思是把#34; src"为您的GetAttribute方法。

发生异常是因为对于每个元素,您尝试获取元素上不存在的属性。

答案 1 :(得分:1)

您必须等到页面加载完毕。

string url = "http://www.google.com";
WebBrowser wb = new WebBrowser();
wb.Navigate(new Uri(url));

wb.DocumentCompleted += (s, e) =>
{
    HtmlElementCollection elementcolls = wb.Document.GetElementsByTagName("img");
    foreach (HtmlElement elementcoll in elementcolls)
    {
        listBox1.Items.Add(elementcoll.GetAttribute("src"));
    }
};