Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: okik en 6 Marzo 2015, 16:52 pm



Título: Solucionar Error NullReferenceException en VB.Net 2010
Publicado por: okik en 6 Marzo 2015, 16:52 pm
Hola,

Se trata de un código para loggear. Rellena de forma automático al login de una página.

Código
  1. Dim theElementCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("Input")
  2.            For Each curElement As HtmlElement In theElementCollection
  3.                Dim controlName As String = curElement.GetAttribute("id").ToString
  4.                If controlName = idUser Then
  5.                    curElement.SetAttribute("Value", UserName)
  6.                End If
  7.            Next


El error se produce en ("Input").y es "NullReferenceException"---> "Referencia a objeto no establecida como instancia de objeto"

Si coloco el código en el evento WebBrowser1_DocumentCompleted entonces no se produce ningún error pero me interesa introducirlo en un evento Click de un botón.


Nota:

idUser  es una variable string con el id del control de la página donde hay que introducir el nombre de usuario

UserName es una variable string para el nombre del usuario



Título: Re: Solucionar Error NullReferenceException en VB.Net 2010
Publicado por: okik en 6 Marzo 2015, 17:46 pm
Ya se porqué se produce el error:

Porque primer tiene que estar cargada la página. Como no encuentra la colección de controles se produce un error.

Pare evitar el error puede ponerse la condición:
Código
  1. If (WebBrowser1.Document IsNot Nothing) Then
  2. ...
  3. end if
  4.  

Y por supuesto esperar a que cargue la página.