2013-02-04 8 views
6

Bir kullanıcının bir WebBrowser denetimini kullanarak kendi hesabına giriş yapmasına yardımcı olmaya çalışıyorum. Bir giriş etiketinin değerini WebBrowser'un InvokeScript işlevini kullanarak oyuncular kullanıcı adıyla ayarlamaya çalışıyorum. Ancak, şu anki çözümüm boş bir beyaz sayfa oluşturmaktan başka bir şey yapmıyor.WebBrowser Denetiminde bir Giriş Etiketi Ayarının Değeri

Benim geçerli kod (web benim WebBrowser kontrolü için adıdır) aşağıdaki gibidir:

belirtildiği gibi
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"); 
}; 

, bu şu anda çalışmıyor. Bunu Windows Phone'da yapmaya çalışıyorum, bu yüzden burada bulduğum birkaç örnekle aynı işlevlere erişimim olmadığı için başka yerlerde çalışmayacağım.

Bunu başarılı bir şekilde nasıl uygularım?

DÜZENLEME: Belki de açık değildim, ancak sınırlı bir API'ye sahip olan Windows Phone ile çalışıyorum, yani Document özelliğine ve diğer bazı işlevlere erişimim yok. InvokeScript'a erişimim var ama çok daha fazla değil.

cevap

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; 
     } 
    } 

burada daha bulabilirsiniz: http://deltahacker.gr/2011/08/15/ftiakste-to-diko-sas-robot/

+3

Windows Phone WebBrowser denetimi Belge özelliği yoktur. – Runewake2

+0

Benim için çalıştı. Çok teşekkürler. –