تحكم WebBrowser والدولة جاهزة
-
05-07-2019 - |
سؤال
وأنا باستخدام التحكم WebBrowser للدخول إلى موقع على شبكة الانترنت.
WbBrowser.Navigate("http://www.foo.com/login.php")
وبمجرد أن يتم تحميل الصفحة I تسجيل الدخول باستخدام التعليمات البرمجية التالية
While WbBrowser.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
WbBrowser.Document.GetElementById("user_login").SetAttribute("Value", "username")
WbBrowser.Document.GetElementById("user_pass").SetAttribute("Value", "password")
WbBrowser.Document.Forms("loginform").InvokeMember("submit")
وهذا يعمل بشكل جيد. على دخول ناجح لدي للانتقال إلى صفحة أخرى. وهذا لن يحدث إلا إذا كان تسجيل الدخول هو الصحيح. القضية هنا هي على النحو ابن كصفحة تسجيل الدخول يتم تحميل في ReadyState من التحكم WebBrowser يصبح كامل وحتى قبل الدخول I لموقع السطر التالي من التعليمات البرمجية يحصل على تنفيذها والنتائج في خطأ وأنا لم تسجل الدخول إليه.
WbBrowser.Navigate("http://www.foo.com/page2.php")
وكيف يمكنني أن أجعل الانتظار طلب تسجيل الدخول لتكتمل ومن ثم تنفيذ السطر أعلاه من التعليمات البرمجية. أي أفكار؟
المحلول
وحاول تتبع حالة طلبك في متغير، واستخدام الحدث webbrowser.DocumentCompleted لاختبار إذا مرت تسجيل الدخول.
نصائح أخرى
وSalvete! أنا فقط الإجابة على وظيفة مماثلة هنا، لتنفيذ هذا الإجراء المحدد، يرجى إلقاء نظرة: كيفية الانتظار حتى WebBrowser هو تحميل تماما في VB.NET؟