2013-02-04 35 views
6

मैं एक कस्टम WebBrowser नियंत्रण का उपयोग कर उपयोगकर्ता को अपने खाते में लॉग इन करने में मदद करने का प्रयास कर रहा हूं। मैं WebBrowser के InvokeScript फ़ंक्शन का उपयोग कर खिलाड़ियों के उपयोगकर्ता नाम में इनपुट टैग का मान सेट करने का प्रयास कर रहा हूं। हालांकि, मेरा वर्तमान समाधान कुछ भी नहीं कर रहा है लेकिन एक खाली सफेद पृष्ठ प्रस्तुत करता है।वेबब्राउज़र नियंत्रण में एक इनपुट टैग का मूल्य निर्धारित करना

मेरे वर्तमान कोड इस तरह दिखता है (वेब ​​मेरी 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"); 
}; 

के रूप में उल्लेख किया है, यह अभी काम नहीं करता। मैं विंडोज फोन पर ऐसा करने का प्रयास कर रहा हूं, इसलिए मैंने यहां पाया है कि कई उदाहरण यहां पाए गए हैं और अन्य स्थानों पर काम नहीं करेगा क्योंकि मेरे पास एक ही कार्य तक पहुंच नहीं है।

मैं इसे सफलतापूर्वक कैसे करूं?

संपादित करें: शायद मैं स्पष्ट नहीं था, लेकिन मैं विंडोज फोन के साथ काम कर रहा हूं, जिसमें सीमित एपीआई उपलब्ध है जिसका अर्थ है कि मेरे पास Document संपत्ति और कई अन्य कार्यों तक पहुंच नहीं है। मेरे पास InvokeScript तक पहुंच है, लेकिन बहुत कुछ नहीं है।

उत्तर

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

आप यहाँ अधिक जानकारी प्राप्त कर सकते हैं: http://deltahacker.gr/2011/08/15/ftiakste-to-diko-sas-robot/

+3

विंडोज फोन WebBrowser नियंत्रण एक दस्तावेज़ संपत्ति नहीं है। – Runewake2

+0

मेरे लिए काम किया। बहुत बहुत धन्यवाद। –