Selenium Python: أتمتة المتصفح لاختبار الويب واستخراج البيانات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Selenium ولماذا تحتاجه

Selenium هو إطار عمل قوي مفتوح المصدر مصمم لأتمتة الإجراءات في متصفحات الويب. تتيح هذه المكتبة للمطورين التحكم في المتصفحات برمجياً، ومحاكاة الإجراءات الحقيقية للمستخدم: التنقل بين الصفحات، إدخال البيانات في النماذج، النقر على العناصر، التعامل مع القوائم المنسدلة، والعديد من العمليات الأخرى.

يُستخدم Selenium على نطاق واسع في مجالات التطوير والاختبار المختلفة. تشمل مجالات الاستخدام الرئيسية: الاختبار الآلي لواجهات المستخدم، استخراج البيانات من المواقع الديناميكية، أتمتة المهام المتكررة في المتصفح، والتحقق من وظائف تطبيقات الويب.

الميزات الرئيسية ومزايا Selenium

دعم متعدد المنصات والمتصفحات

يوفر Selenium توافقاً كاملاً مع جميع المتصفحات الشائعة، بما في ذلك Google Chrome وMozilla Firefox وMicrosoft Edge وSafari وOpera. هذا يعني أن نفس الكود يمكن أن يعمل على متصفحات مختلفة مع تغييرات طفيفة.

محاكاة واقعية لإجراءات المستخدم

يستطيع الإطار محاكاة أي إجراءات المستخدم بدقة: النقر بزر الفأرة الأيمن والأيسر، سحب العناصر وإفلاتها، تمرير الصفحات، إدخال النص من لوحة المفاتيح، التعامل مع النوافذ المنبثقة، وغيرها الكثير.

طرق مرنة للبحث عن العناصر

يوفر Selenium طرقاً متعددة للبحث عن العناصر في الصفحة: بواسطة ID، class، اسم الوسم، محددات CSS، تعبيرات XPath، نص الروابط، وخصائص أخرى. هذا يضمن أقصى مرونة عند العمل مع أنواع مختلفة من صفحات الويب.

دعم وضع headless

إمكانية تشغيل المتصفح في وضع headless (بدون واجهة رسومية) تجعل Selenium أداة مثالية للأتمتة على الخوادم، في الحاويات، وخطوط أنابيب CI/CD.

إمكانيات متقدمة

يستطيع Selenium التعامل مع علامات تبويب ونوافذ متعددة، معالجة تنبيهات JavaScript، إدارة الكوكيز والجلسات، تكوين خوادم بروكسي، التقاط لقطات شاشة، وحفظ كود HTML للصفحات.

تثبيت وإعداد Selenium

تثبيت المكتبة الأساسية

للبدء مع Selenium، يجب تثبيت المكتبة الأساسية عبر pip:

pip install selenium

تحميل وإعداد مشغلات المتصفحات

للعمل مع كل متصفح، يلزم وجود مشغل (driver) مناسب. الأكثر شيوعاً هو ChromeDriver لمتصفح Chrome. بدءاً من الإصدار Chrome 115، يُنصح باستخدام Chrome for Testing الذي يمكن تنزيله من الموقع الرسمي لـ Google.

من المهم التأكد من أن إصدار المشغل يتوافق مع إصدار المتصفح المثبت. لأتمتة هذه العملية، يمكن استخدام أدوات خاصة مثل webdriver-manager:

pip install webdriver-manager

الإدارة التلقائية للمشغلات

النهج الحديث لإدارة المشغلات يتضمن استخدام مدير المشغلات:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

أساسيات العمل مع Selenium

تشغيل المتصفح والعمليات الأساسية

مثال أساسي لتشغيل المتصفح والتنقل بين الصفحات:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# إعداد خيارات المتصفح
options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

# تهيئة المشغل
driver = webdriver.Chrome(options=options)

# التنقل بين الصفحات
driver.get("https://example.com")
print(f"عنوان الصفحة: {driver.ti

توصيات