2009-10-02 5 views
8

Devo registrarmi a un sito a livello di programmazione. L'ho fatto con VB6 (usando il componente IE Web Browser), ma non so come modificare le caselle di testo su un sito Web usando WebBrowser. Non ho bisogno di farlo con Webbrowser, è solo che so che si può fare con esso. Ho solo bisogno di inserire un nome utente, una password ecc. Usando il mio programma.Come creare un web bot? (o qualcosa di simile)

Grazie

+2

Con "o qualcosa" intendi, "Voglio fare un 'web bot', o davvero, qualsiasi altra cosa farà"? Se è così, allora rilascia una casella di testo su un modulo, rendilo multilinea e agganciatelo, e otterrai un blocco note di un cheapo senza caricare o salvare le funzioni. È comunque qualcosa ... –

risposta

3

Anche dare un'occhiata al progetto Watin: http://www.codeproject.com/KB/aspnet/WatiN.aspx

E 'più usato per i test web app, ma per l'automazione di Web Form ha grandi caratteristiche out of the box .

Per una soluzione più neutra, è anche possibile effettuare il check-out: http://seleniumhq.org/ Anche in questo caso si tratta di un framework per il test delle app Web ma è utile per ciò che si desidera.

HTH Alex

+0

ora WatiN non supporta le ultime versioni dei browser. C'è qualche altro prodotto molto simile a WatiN? Grazie – user2167382

3

Prova a dare un'occhiata a WATin. TI ti consentirà di automatizzare un browser da C#.

Ha anche un registratore che può essere utile.

È possibile utilizzare HttpWebRequest ma se un componente open source (Watin) non è un problema, l'operazione richiederà molto meno tempo.

Gentilezza,

Dan

+0

ha un registratore integrato? Ho visto altri progetti che aggiungono questa funzionalità –

0

Grazie a tutti, ho trovato come farlo con browser web, ma WatiN sembra migliore.

webBrowser1.Navigate("http://www.somewebsite.com/register.php"); 
    //Wait until website is loaded 
    do 
    { 
     Application.DoEvents(); 
    } 
    while (webBrowser1.IsBusy == true); 
    webBrowser1.Document.GetElementById("username" 
     ).SetAttribute("value", textBox1.Text); 
    //etc. 
+0

ok scaricato una versione più recente ora worx – PythEch

0

Dipende se la prima campata con il valore di classe che non si vuole è sempre trovato secondo u potrebbe saltare con una bandiera

var variable = ie.Span(Find.ByClass("TheClass")).Text; 
var x = 0; 

if(variable != "" && x == 0){ 

var variable2=variable 

}else{ 
x++ 
} 

in questo modo si mantiene solo la cosa reale u want in "variable2" puoi adattare lo stesso codice per saltare il primo e mantenere il secondo. invece di saltare il secondo e mantenere il primo. scusa per il mio cattivo inglese: c