Ad ogni modo, dopo aver caricato una pagina di login con il controllo Web Browser (per chi non lo conoscesse, qui c'è una breve spiegazione), bisogna osservarne il codice HTML. Una volta individuato il nome o l'ID dei campi di input desiderati, si deve trovare un modo per riempirli. Qui ci viene in aiuto la proprietà Document di WebBrowser, che contiene sotto forma di HtmlElementCollection la lista di tutti i moduli della pagina: ci si deve recare a quello in cui sono presenti i campi da compilare. Ad esempio:
'Si assuma WB come il controllo WebBrowser Private Sub Web_Navigated(ByVal sender As Object, _ ByVal e As WebBrowserNavigatedEventArgs) Handles WB.Navigated 'Enumera tutti i moduli esistenti For Each Form As HtmlElement In WB.Document.Forms 'Ne controlla i nomi e preleva solo quello desiderato If Form.Name = "nome modulo" Then End If Next End Sub/code] Dopo aver trovato il form giusto, si enumerato i tag Input al suo interno per trovare quelli desiderati. Una volta individuati, li si deve riempire. Per fare questo basta simulare la pressione dei tasti da tastiera con la classe SendKeys: [code]For Each Input As HtmlElement In Form.GetElementsByTagName("input") If Input.Id = "username" Then 'Attiva il controllo, posizionandovi 'il cursore all'interno Input.Focus() 'Simula la pressione dei tasti che compongono 'il nome dell'utente SendKeys.SendWait("Totem") 'Toglie il focus Input.RemoveFocus() End If If Input.Id = "password" Then Input.Focus() SendKeys.SendWait("password") Input.RemoveFocus() End If Next
Ora basta solamente premere il pulsante submit che invia i dati. Anche qui si controllano prima gli attributi desiderati e poi si procede alla pressione, selezionando il controllo e simulando un Invio:
'Seleziona il pulsante submit con testo Entra If Input.GetAttribute("type") = "submit" And _ Input.GetAttribute("value") = "Entra" Then 'Lo seleziona Input.Focus() 'E con Invio lo preme SendKeys.SendWait(Chr(13)) Input.RemoveFocus() End If
Aggiungi un commento