2017-02-18 1 views
0

Je travaille actuellement sur un bo qui va dans une barre de recherche, sélectionne un élément, et obtient son lien href. J'utilise le code suivant et j'ai NullReferenceExceptions levé. Quelqu'un sait-il pourquoi?Pourquoi suis-je levé une exception NullReferenceException lorsque j'essaie de trouver un élément?

webBrowser1.Navigate("https://us.octobersveryown.com/search?q=shirt"); 
    Thread.Sleep(1000); 
    String test = webBrowser1.Document.GetElementsByTagName("body")[0].GetAttribute("class"); 

Merci, Nickolas

+1

Très probablement 'webBrowser1.Document.GetElementsByTagName (" body ") [0]' est null. Essayez de déboguer votre programme pour vérifier cela. – Christos

+0

@Christos C'est tout ce que je reçois: – Blar321

+0

Une exception non gérée de type 'System.NullReferenceException' s'est produite dans BlarBot.exe Informations supplémentaires: La référence d'objet n'est pas définie sur une instance d'un objet. – Blar321

Répondre

0

Vous devez mettre que sous événement DocumentCompleted et accéder au document dans votre manche quand il se déclenche:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     string test = webBrowser1.Document.GetElementsByTagName("body")[0].GetAttribute("class"); 
    } 

Votre navigation est pas encore en cours de téléchargement, même si vous appelez la méthode Navigate. C'est pourquoi il renvoie null.