السلام عليكم ورحمة الله وبركاته
رابط الحلقة الثانية من هنا
في الحلقة اللي فاتت عرفنا إزاي نفتح صفحة جوجل .. ودا الكود اللي استخدمنا ، وهنزود عليه سطر فيه كلمة Stop عشان نتوقف عند السطر ده ونشوف درس النهاردة
هنقوم بتنفيذ الكود وهيفتح معانا المتصفح ، وأي صفحة ويب عبارة عن عناصر ويب Web Elements وهي عبارة عن مكونات الصفحة ، ودي بتكون مكتوبة بلغة HTML .. وهنتعرف بشكل مبسط على أهم المكونات دي إن شاء الله
بعد ما نفذنا الكود ووقف الكود عند كلمة Stop نروح للمتصفح ونعمل كليك يمين على صندوق البحث الخاص بجوجل ونختار Inspect (وفيه اختصار ليها Ctrl + Shift + I )
هيظهر لنا نافذة في الجانب الأيمن من المتصفح بهذا الشكل
النافذة دي بيستخدمها المطورين لمعرفة مكونات صفحة الويب ، وممكن نتحكم في المكان اللي بتظهر فيه النافذة بحيث نظهرها أسفل نافذة المتصفح من هنا
نلاحظ في الجزء المظلل إن صندوق البحث عبارة عن input أي عنصر إدخال ، لأن من خلاله بيتم إدخال كلمات البحث
ويوجد خصائص لكل عنصر اسمها بالانجليزي Attributes .. على سبيل المثال class و id وname دي بعض الخصائص الخاصة بصندوق البحث وكل خاصية ليها قيمة توضع بين أقواس تنصيص . مثال : الخاصية id دي بتكون قيمة مميزة وفريدة (مش بتتكرر في الصفحة) وهنا قيمتها lst-ib
دلوقتي نرجع لملف الإكسيل وبعد سطر Stop نبدأ نكتب سطر من خلاله نقدر نحدد العنصر (صندوق البحث) عن طريق الخاصية id على سبيل المثال
وإحنا بنكتب نلاحظ إن فيه قايمة منسدلة بتساعدنا في كتابة أسطر الكود .. لاحظوا النافذة التالية
أول ما كتبت حرف الـ f ظهر لي القايمة وهنختار منها FindElementById ودي معناها إيجاد المكون أو العنصر باستخدام خاصية الـ id .. وقيمة الخاصية بتكون بين أقواس تنصيص
CODE
bot.FindElementById("lst-ib")
السطر كدا غير مكتمل ..إحنا حددنا العنصر أو المكون (صندوق البحث) .. بس نسأل هنعمل ايه بالعنصر ده؟ دا صندوق بحث وبشكل يدوي بنكتب فيه كلمات بحث ، يعني هنا ييجي دور لوحة المفاتيح ، وطالما ذكرنا لوحة المفاتيح يبقا نستخدم SendKeys أي إرسال مفاتيح .. بالبلدي كدا بنخلي الكود يكتب في صندوق البحث بشكل آلي
CODE
bot.FindElementById("lst-ib").SendKeys "excel-egy"
أظن كدا سطر الكود دا أصبح واضح إنه بيدور على العنصر اللي خاصية الـ id بتاعته قيمتها lst-ib ويكتب في العنصر ده النص excel-egy
دا شكل النافذة قبل تنفيذ السطر السابق
دلوقتي السطر الأصفر في الكود واقف عند كلمة Stop .. نضغط F8 للانتقال للسطر التالي أو نسحب المؤشر الأصفر لأسفل
لما يكون السطر باللون الأصفر نضغط F8 مرة تانية عشان ينفذ السطر .. ونلاحظ المتصفح ، هتلاقيه بالشكل ده
** الخطوة التالية مش هنشرحها بالصور عشان تحاول تعتمد على الوصف في التنفيذ .. بعد ما كتبنا في صندوق البحث المفترض إننا بنضغط على زر "بحث Google" ..
هنعمل نفس الخطوات ، هنعمل كليك يمين على زر البحث ونختار Inspect .. ونشوف الـ id الخاص بالعنصر ده لكن لما نبص في الخصائص مش هنلاقي خاصية id في الحالة دي بشوف خاصية تانية زي خاصية الـ name .. ودي قيمتها btnK
هنا هنستخدم FindElementByName أي البحث بخاصية الاسم name ... وبما إن دا زر بحث بيتم عمل كليك عليه فهيكون التعامل معاه باستخدام طريقة الكليك Click بهذا الشكل
CODE
bot.FindElementByName("btnK").Click
ولما ننفذ السطر ده هيظهر لنا نتائج البحث
*** ممكن يقابلك خطأ في السطر السابق ودا سببه إننا لما بنكتب في صندوق البحث بتظهر قايمة كلمات تلقائية وفيها زر "بحث Google" بس الزر ده مختلف وخاصية الـ name فيها مختلفة
لما نشوف العنصر ده هنلاقي لا فيه خاصية id ولا خاصية name لكن فيه خاصية اسمها class
في الحالة دي ممكن نستخدم السطر بهذا الشكل
CODE
bot.FindElementByClass("lsb").Click
فإحنا نجرب السطر دا أو دا .. في حالة حدوث خطأ
وأخيراً إليكم الكود بالكامل
CODE
Sub Navigate_To_Google()
Dim bot As New WebDriver
bot.Start "chrome", "https://www.google.com"
bot.Get "/"
Stop
bot.FindElementById("lst-ib").SendKeys "excel-egy"
bot.FindElementByName("btnK").Click
'OR
'bot.FindElementByClass("lsb").Click
End Sub
أرجو ان تكونوا قد استفدتم من حلقة اليوم
********************************
يمكن الاستغناء عن التعامل مع زر "بحث Google" سواء الذي يظهر بالصفحة بشكل أساسي أو الذي يظهر مع ظهور القائمة التلقائية ، وذلك باستخدام الضغط على مفتاح Enter بالأكواد .. من ثم يمكن الاستغناء عن هذين السطرين
CODE
bot.FindElementByName("btnK").Click
'OR
bot.FindElementByClass("lsb").Click
واستخدام السطر التالي ، والذي يقوم مقام الضغط على مفتاح Enter من لوحة المفاتيح
CODE
bot.SendKeys bot.Keys.Enter<br />
ليصبح الكود بشكله النهائي بهذا الشكل
CODE
Sub Navigate_To_Google()
Dim bot As New WebDriver
bot.Start "chrome", "https://www.google.com"
bot.Get "/"
bot.FindElementById("lst-ib").SendKeys "excel-egy"
bot.SendKeys bot.Keys.Enter
End Sub
ضع نقطة توقف Breakpoint عند آخر سطر End Sub ثم نفذ الكود ولاحظ النتائج
وأخيراً إليكم ملف PDF مجمع بمحتوى الحلقات الثلاثة
رابط الملف من هنا
أترككم في رعاية الله
أخوكم في الله / ياسر خليل أبو البراء