Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] automatizzare WebBrowser
Forum - C# / VB.NET - [C#] automatizzare WebBrowser

Avatar
Metal (Normal User)
Newbie


Messaggi: 16
Iscritto: 04/04/2011

Segnala al moderatore
Postato alle 19:18
Lunedì, 15/08/2011
Sto facendo un bot per un browsergame, ma mi sono bloccato proprio all'inizio.
Ho letto un po' in giro riguardo all'automazione di un controllo WebBrowser, ma non riesco a capire come inviare la form una volta che ho inserito username e password.

Questo è il sorgente del form di login
Codice sorgente - presumibilmente Plain Text

  1. <div>
  2. <form action="/login/login" method="post" >
  3.         <input type="hidden" name="contact[csrf]" value="blablavalue" id="contact_csrf" />    <p>
  4.                     </p><label for="contact_username">Username</label>              <input type="text" name="contact[username]" id="contact_username" />                <label for="contact_password">Password</label>      <input type="password" name="contact[password]" id="contact_password" />    <input type="submit" value="Login" />
  5. </form>
  6.  
  7. </div>



E questo è il codice che utilizzo per inserire i dati
Codice sorgente - presumibilmente Plain Text

  1. webBrowser1.Document.GetElementById("contact_username").SetAttribute("value", "username");
  2. webBrowser1.Document.GetElementById("contact_password").SetAttribute("value", "password");



...e a questo punto non so come proseguire. Ho cercato un po' in giro, ma negli esempi che ho visto tutti fanno riferimento all'oggetto/pulsante di login tramite il suo id e ci invocano sopra un click, ma nel mio caso il pulsante non ha un id.

Come posso procedere?

Ultima modifica effettuata da Metal il 17/08/2011 alle 15:57
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
2
Down
V
Segnala al moderatore
Postato alle 11:23
Martedì, 16/08/2011
Invece di click, fai riferimento al form e invocane il metodo submit.
http://totemslair.org/guide/viewchapter.php?guida=vb&id=80

giusto, è meglio così - Qwertj - 16/08/11 11:37
non capisco come fare riferimento al form...nel link che hai postato ne utilizza l'id, ma nel mio caso il form (come il pulsante) non ne ha uno. - Metal - 16/08/11 14:42
Ci sono altri modi per trovarlo. Ad esempio, basta prendere l'n-esimo form della pagina: se c'è un solo form allora sarà quello, altrimenti li enumeri tutti e prendi quello che ti interessa. - Il Totem - 17/08/11 11:26
infatti ho fatto come diceva qwertj, ma la tua soluzione mi sembrava più "pulita" quindi ho chiesto. Grazie :) - Metal - 17/08/11 15:56
PM
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 10:03
Martedì, 16/08/2011
Devi fare riferimento al pulsante in altro modo, ad esempio come n-esimo elemento figlio del form (o dell'elemento di cui è figlio)

grazie :) - Metal - 17/08/11 16:01
PM