2017-06-03 68 views
0

我需要幫助或者修復這個錯誤,或者可能讓點擊「開始查看器」按鈕的方式不同。爲什麼我的WebBrower類返回一個空引用異常?

private void button1_Click(object sender, EventArgs e) 
{ 
    { 
     webBrowser1.Navigate(new Uri(textBox1.Text)); 
     HtmlDocument doc = webBrowser1.Document; 

     HtmlElementCollection classButton = webBrowser1.Document.All; 
     foreach (HtmlElement element in classButton) 
     { 
      if (element.GetAttribute("className") == "titre_12") 
      { 
       element.InvokeMember("click"); 
      } 
     } 
    } 
    { 
     timer1.Tick += new EventHandler(timer1_Tick); 
     timer1.Interval = 1000; // 1 second 
     timer1.Start(); 
     label2.Text = counter.ToString(); 
    } 
} 

我得到 「型 'System.NullReferenceException' 的第一次機會異常出現在VPS網絡Bot.exe」

對於線...

HtmlElementCollection classButton = webBrowser1.Document.All; 

我想簡單地讓我的機器人點擊啓動一個查看器,但HTML沒有一個ID,所以我想按類來獲取我的元素。

Screen shot of HTML

我想有它點擊https://www.websyndic.com/wv3/?qs=MTAzMDE5Nw==

「啓動瀏覽器」我是自學的,當涉及到編程,所以我也並不總是理解正確的條款。我提前道歉。

我的帖子被標記爲重複,但它提到的帖子是我已經嘗試過的,它沒有工作。

+0

沒有重複,後期它被匹配到不解決我的問題。 – Jay

+0

是的,它是重複的。對於空引用異常的解決方案是* always *來確定什麼是null。如果你能確定什麼是空的而你不明白*爲什麼它是空的,那麼你有一個不同的問題可能不是重複的。 –

回答

0

解決方案

使用WebBrowser.DocumentCompleted

private void button1_Click(object sender, EventArgs e) 
{ 
    webBrowser1.DocumentCompleted += (se, ev) => 
    { 

     // the rest of your code 

    }; 

    webBrowser1.Navigate("www.domain.com"); 
} 

附加說明

當你附上statments在{}

{ 
    webBrowser1.Navigate(new Uri(textBox1.Text)); 
} 
{ 
    HtmlDocument doc = webBrowser1.Document; 
    HtmlElementCollection classButton = webBrowser1.Document.All; 
    ... 
} 

要隔離從頂部到底部。我敢肯定,你的意思是這個,而不是...

{ 
    webBrowser1.Navigate(new Uri(textBox1.Text)); 
    HtmlDocument doc = webBrowser1.Document; 
    HtmlElementCollection classButton = webBrowser1.Document.All; 
    ... 
} 
+0

額外的大括號只會改變在它們內部聲明的對象的範圍。它不會對大括號外聲明的對象產生任何影響。這絕對不是通常所做的事情,但它不會造成問題。 –

+0

@BJMyers - 你說得對。我現在要解決一個問題。 – Svek

+0

@BJMyers您將其標記爲重複項,並將「webBrowser.Navigate」切換爲「webBrowser.DocumentCompleted」不能解決我的問題。此外,我在一個按鈕下添加了多個動作,我需要瀏覽器導航到該鏈接,然後執行單擊「開始查看器」的操作,但它沒有ID,因此我不得不按類取得我的元素,而且我得到「HtmlElementCollection classButton = webBrowser1.Document.All;」行中出現錯誤「VPS Web Bot.exe中發生類型'System.NullReferenceException'的第一次機會異常」 – Jay

相關問題