![]() |
|
درس مترجم - طريقة الكتابة في صفحة الإنترنت والضغط على الأزرار من خلال برنامجك آليا - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم مقالات C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=177) +--- الموضوع : درس مترجم - طريقة الكتابة في صفحة الإنترنت والضغط على الأزرار من خلال برنامجك آليا (/showthread.php?tid=5604) |
درس مترجم - طريقة الكتابة في صفحة الإنترنت والضغط على الأزرار من خلال برنامجك آليا - RaggiTech - 14-10-12 كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .مقال منقول ومترجم بتصرف من موقع Code Project من الرابط التالي : http://www.codeproject.com/cs/sample...ebbrowsing.asp بعنوان : Automating web browsing By mitja g. والكلام باللون الأخضر قمت انا باضافته للتوضيح وليس من أصل المقال ، مع تحويل للكود ليتم عرضه بكل من C# و VB.net في البداية للتوضيح فقط والطريقة المفترض انها اصبحت معروفة للجميع . مقدمة : في هذه المقالة أحاول أن أقدم امكانية لعمل autmate للمهام التي ننفذها باستخدام الماوس والكيبورد - لوحة المفاتيح- ، وهذا يمكن أن يعني : فتح الصفحة ، ادخال البيانات في صندوق نصوص مثلاً ومن ثم الضغط على زر ، ولاحقاً يمكن تطوير هذه المهام بحيث تشمل مهام أكثر تعقيداً تتضمن البحث في الويب وغير ذلك مما يمكن أن تستخدمها كأدوات لاختبار تطبيق الويب الخاص بك . - توضيح : يقصد المؤلف انه سيحاول من خلال هذا البرنامج نقل البيانات من برنامج عادي إلى ويب ، مثلاً في حالة اضافة موضوع جديد في المنتدى فإنك تقوم بالضغط على رابط ، ثم كتابة بعض الكلمات ومن ثم الضغط على زر ، ويهدف الكاتب في هذه المقالة إلى عمل ذلك على برنامج خارجي يتولى هو لاحقاً القيام بهذه المهمات آلياً على صفحة الإنترنت . وبشكل عام فإن الطريقة العامة لمعالجة البيانات تعتمد على مبدأ مثل هذا : كود : //C#:أما نحن في هذه المقالة فنحاول الوصول إلى طريقة أخرى باستخدام الفئة Class المسمى باسم WebBrowser في .net وهو ما سينتج اختلافاً حيث أننا لا نتعامل مع Request-Respones مثلما سبق ، بل نتعامل مع ملفات نصية txt files من خلال أداة WebBrowser حيث نستطيع التعامل من خلال high level حيث تكون الأمورأسهل ، حيث لن نضطر لعمل كل العمليات السابقة بل سوف نتعامل مع مربعات النص textboxes والأزرار Buttons على أنها كائنات Objects بالشكل التالي : كود : //C#:ال ActicX الخاص بـ WebBrowser هو في الواقع instance أو نسخة من متصفح الاكسبلورر الخاص بك يتمتع بكافة مميزاته ومشاكله أيضاً . وتتم جميع الاتصالات مع هذه الأداة من خلال مكتبة اسمها MSHTML والتي لديها واجهة Interface مع كل الأدوات التي يمكن تضمينها في صفحة الويب ، وهذه المكتبة موجودة في جميع اصدارات ويندوز . ومبدئياً فإنك تستطيع قراءة الكائنات Objects وتحويلها إلى الواجهة التي تريدها ، ولكن هذا يكون صعباً إذا لم تكن تعرف الواجهة المراد التحويل إليها . استخدام الكود : طريقة فتح جديد : كود : public string OpenPage(WebBrowser browser, string urlToLoad)http://vb4arb.com/vb/showthread.php?1054 هناك نقطة هامة ينبه عليها الكاتب وهي ان عملية فتح صفحة هي عملية لاتزامنية asynchronous ولهذا لن تستطيع معرفة موعد انتهاء فتح الصفحة ، ولذا فإن الكود الخاص بنا لا بد أن ينتظر حتى يتم تحميل الصفحة بالكامل : كود : public string OpenPage(WebBrowser browser, string urlToLoad){طريقة الضغط على زر أمر Button : نقوم اولاً بتحميل الصفحة في المتصفح ، ثانياً نقوم بمعرفة الزر باسمه من خلال WebBrowser.HtmlElementCollection وأخيراً نقوم بعمل Casting للزر باستخدام الواجهة الخاصة بـ MSHTML المسماه HTMLInputElementClass بالشكل التالي : كود : HTMLInputElementClass iElement = (HTMLInputElementClass) button.DomElement;نفس الطريقة السابقة ما عدا اختلاف وجهة عملية ال Cast : كود : HTMLAnchorElementClass linkElement = كما اعتدنا سوف نقوم بأخذ مربع النص من HtmlElement ، ومن ثم نقوم باسناد خاصية نص له بالشكل التالي : كود : element.InnerText = valueToFill;كود : HTMLInputElementClass iElement = كود : HTMLSelectElementClass iElement = كود : Rectangle rec = new Rectangle();http://www.codeproject.com/cs/sample...owsing_src.zip تجد رابط للسورس كود لجميع العمليات سابقة الذكر ، كما تجد هنا الرابط التنفيذي مباشرة : http://www.codeproject.com/cs/sample...wsing_demo.zip لا بد ان تكون عضواً في Code Project لتتمكن من تنزيل البرنامج ، وهو ما انصح اخواني به حيث انه يعد من أكبر الموسوعات العالمية في البرمجة كما ان البرنامج في المرفقات لغير الأعضاء يمكنهم تحميله مباشرة. نبذة عن كاتب الموضوع : الاسم : mitja g المكان : Slovenia والله الموفق .. والسلام عليكم ورحمة الله وبركاته . |