سؤال

وأنا باستخدام التحكم 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؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top