WebBrowser, HtmlElementCollection y System.NullReferenceException
Publicado por ricard (13 intervenciones) el 10/03/2018 13:29:44
Este programita es para automatizar actualizaciones en una pagina web
Funciona de maravilla cuando separo los elementos en diferentes Sub's
Pero en el momento en que adjunto todo el código en el Form_Load, los elemtos del WebBrowser me da el maldito error
System.NullReferenceException: 'Object reference not set to an instance of an object.' en la linea
Dim elementos As HtmlElementCollection = BrowserSepulveda.Document.All en la línea 17
End Class
Sé que por alguna razón hay algo no definido, pero la verdad es el primer programa que hago (dos semanas) y ya no sé por donde tirar, mis conocimientos de prueba-error ya han llegado al límite con él.
Gracias de antemano
Funciona de maravilla cuando separo los elementos en diferentes Sub's
Pero en el momento en que adjunto todo el código en el Form_Load, los elemtos del WebBrowser me da el maldito error
System.NullReferenceException: 'Object reference not set to an instance of an object.' en la linea
Dim elementos As HtmlElementCollection = BrowserSepulveda.Document.All en la línea 17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Imports System.IO
Imports System.Collections
Imports System.Threading
Public Class Login
Dim URLs As String()
Dim UrlIndex As Integer = 0
Dim Contador As Integer = 0
Dim Hora As Date
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
BrowserSepulveda.Navigate("http://192.155.1.23/mis/?logout")
Dim elementos As HtmlElementCollection = BrowserSepulveda.Document.All
For Each elemento As HtmlElement In elementos
If elemento.GetAttribute("id") = "email" Then
elemento.SetAttribute("value", TextBox1.Text)
End If
If elemento.GetAttribute("id") = "contra" Then
elemento.SetAttribute("value", TextBox2.Text)
End If
If elemento.GetAttribute("value") = "SEND >>" Then
elemento.InvokeMember("click")
End If
Next
Dim path As String = "C:\okdk1.txt"
URLs = File.ReadAllLines(path)
BrowserSepulveda.Navigate(URLs(UrlIndex))
TextBox4.AppendText(URLs(UrlIndex) & vbNewLine) 'TEST
Dim element As HtmlElement = BrowserSepulveda.Document.GetElementById("cada")
Dim month As HtmlElement = element.GetElementsByTagName("option").Cast(Of HtmlElement).First(Function(el) el.GetAttribute("value") = "0")
month.SetAttribute("selected", "true")
BrowserSepulveda.Navigate("javascript:function alert() {};")
Timer2.Start()
UrlIndex += 1
If UrlIndex >= URLs.Length Then 'Controla final de archivo
Exit Sub
End If
TextBox4.AppendText(URLs(UrlIndex) & vbNewLine)
Console.WriteLine(Contador)
BrowserSepulveda.Navigate(URLs(UrlIndex))
Timer2.Stop()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Label1.Text = String.Format("{0:HH:mm}", DateTime.Now)
TextBox3.Text = String.Format("{0:HH:mm}", DateTime.Now)
End Sub
End Class
Sé que por alguna razón hay algo no definido, pero la verdad es el primer programa que hago (dos semanas) y ya no sé por donde tirar, mis conocimientos de prueba-error ya han llegado al límite con él.
Gracias de antemano
Valora esta pregunta
0