2013-02-04 8 views
6

Sto tentando di aiutare un utente ad accedere al proprio account utilizzando un controllo personalizzato WebBrowser. Sto cercando di impostare il valore di un tag di input sul nome utente del giocatore utilizzando la funzione InvokeScript di WebBrowser. Tuttavia, la mia soluzione attuale non sta facendo altro che il rendering di una pagina bianca vuota.Impostazione del valore di un tag di input nel controllo WebBrowser

mio codice attuale assomiglia a questo (web è il nome per il mio controllo WebBrowser):

web.Navigate(CurrentURL, null, @"<script type='text/javascript'> 
    function SetPlayerData(input) { 
     username.value = input; 
     return true; 
    } 
</script>"); 
web.Navigated += (o, e) => 
{ 
    web.IsScriptEnabled = true; 
    web.InvokeScript("SetPlayerData", @"test"); 
}; 

Come detto, questo non funziona in questo momento. Sto tentando di farlo su Windows Phone, quindi un numero di esempi che ho trovato qui e in altri posti non funzionerà in quanto non ho accesso alle stesse funzioni.

Come eseguirlo correttamente?

EDIT: Forse non sono stato chiaro, ma sto lavorando con Windows Phone, che ha un'API limitato a disposizione nel senso che non ho accesso alla proprietà Document e una serie di altre funzioni. Ho accesso a InvokeScript, ma non molto di più.

risposta

10
webBrowser1.Document.GetElementById("navbar_username").InnerText ="Tester"; 
webBrowser1.Document.GetElementById("navbar_password").InnerText = "xxxxxxxxxxx"; 

foreach (HtmlElement HtmlElement1 in webBrowser1.Document.Body.All) 
    { 
    if (HtmlElement1.GetAttribute("value") == "Log in") 
     { 
     HtmlElement1.InvokeMember("click"); 
     break; 
     } 
    } 

si possono trovare di più qui: http://deltahacker.gr/2011/08/15/ftiakste-to-diko-sas-robot/

+3

Il controllo WebBrowser Phone Windows non dispone di una proprietà del documento. – Runewake2

+0

Ha funzionato per me. Molte grazie. –

Problemi correlati