ما هي مكتبة سيلينيوم - Selenium وما هي أهميتها وإستخداماتها

ما هي مكتبة سيلينيوم – Selenium وما هي أهميتها وإستخداماتها

Selenium هي مكتبة برمجية تُستخدم بشكل واسع لاختبار وأتمتة تطبيقات الويب. تم تطوير Selenium بلغة Java في البداية، ولكنها تدعم الآن العديد من لغات البرمجة الأخرى مثل Python وC# وRuby وغيرها. توفر Selenium واجهة برمجية لتحكم في متصفح الويب بطريقة برمجية أي تسمح للتحكم في المواقع على هيئة عدة عناصر مثل الButtons، Div ، وغيرها من عناصر HTML الموجودة داخل الموقع ليعطي المبرمج صلاحية على إدخال مدخل ما أو زر أو أي عنصر تفاعلي مما يسمح للمطورين بإنشاء اختبارات آلية وأتمتة الإجراءات على مواقع الويب بشكل فعال.

مقدمة إلى مكتبة سيلينيوم – Selenium:

قبل الخوض في الإستخدامات المتعددة لمكتبة سيلينيوم، لنأخذ نظرة عن كثب بلغة جافاسكريبت عن كيفية إنشاء والتعامل مع المكتبة. على سبيل المثال، إليك كود JavaScript باستخدام Selenium WebDriver لفتح موقع ويب والتحقق من عنصر على الصفحة:

const { Builder, By, Key, until } = require('selenium-webdriver');

async function example() {
    let driver = await new Builder().forBrowser('chrome').build();
    try {
        // افتح موقع ويب
        await driver.get('https://example.com');

        // ابحث عن العنصر بالاستناد إلى معرف العنصر وانتظر حتى يظهر على الصفحة
        let element = await driver.wait(until.elementLocated(By.id('example-element')), 5000);

        // قم بالتحقق مما إذا كان العنصر مرئيًا على الصفحة
        let isVisible = await element.isDisplayed();

        // قم بطباعة نتيجة التحقق
        console.log('Is element visible:', isVisible);
    } finally {
        // أغلق المتصفح بعد الانتهاء من الاختبار
        await driver.quit();
    }
}

example();

الكود الذي قدمته هو نموذج بسيط لاستخدام Selenium WebDriver مع لغة JavaScript (Node.js). الهدف من هذا الكود هو فتح موقع ويب، البحث عن عنصر على الصفحة باستخدام معرف العنصر، ومن ثم التحقق مما إذا كان العنصر مرئيًا على الصفحة.

لنأخذ نظرة تفصيلية عن سطور الكود التي تم ذكرها.

  1. Builder وإعداد المتصفح:
   let driver = await new Builder().forBrowser('chrome').build();

يستخدم هذا الجزء من الكود Builder لإعداد وتكوين المتصفح. في هذا المثال، يتم اختيار متصفح Chrome.

  1. فتح موقع ويب:
   await driver.get('https://example.com');

يستخدم هذا الجزء لفتح موقع ويب. في هذا المثال، يتم فتح موقع “https://example.com”.

  1. البحث عن العنصر باستخدام معرف العنصر:
   let element = await driver.wait(until.elementLocated(By.id('example-element')), 5000);

يستخدم هذا الجزء driver.wait للانتظار حتى يتم العثور على العنصر بناءً على معرف العنصر (id)، ويتم تحديد حد زمن الانتظار في هذا المثال بخمس ثوان.

  1. التحقق مما إذا كان العنصر مرئيًا:
   let isVisible = await element.isDisplayed();
   console.log('Is element visible:', isVisible);

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

  1. إغلاق المتصفح بعد الانتهاء من الاختبار:
   await driver.quit();

يستخدم هذا الجزء driver.quit() لإغلاق المتصفح بمجرد انتهاء الاختبار.

إستخدامات مكتبة سيلينيوم في المجالات المختلفة:

إختبارات الويب وتحليل الأداء – Web Testing and Performance Analysis

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

  1. اختبار وظائف التطبيق:
    يمكن استخدام Selenium لتنفيذ اختبارات تلقائية لوظائف التطبيق للتأكد من أن جميع الوظائف تعمل بشكل صحيح، مثل تسجيل الدخول، وإضافة عناصر إلى سلة التسوق، وملء النماذج، وغيرها.
  2. اختبار واجهات المستخدم:
    يمكن استخدام Selenium لاختبار واجهات المستخدم للتأكد من أن التصميم والتفاعل مع المستخدم يعمل بالشكل الصحيح عبر مختلف المتصفحات والأجهزة.
  3. اختبار أداء التطبيق:
    يمكن استخدام Selenium مع أدوات مثل JMeter لاختبار أداء التطبيق، حيث يتم تسجيل سيناريوهات الاستخدام وتشغيلها على الموقع لقياس أداءه في مختلف الظروف والأحمال.
  4. التحقق من الأمان:
    يمكن استخدام Selenium لاختبار أمان التطبيق عن طريق اختبار النقاط الضعيفة في الواجهة وتحقق من سلامة مدخلات المستخدم.
  5. اختبار التوافق:
    يمكن استخدام Selenium لاختبار توافق التطبيق عبر مختلف المتصفحات والأنظمة الأساسية.

فيما يلي مثال عن كيفية استخدام Selenium لاختبار أداء تحميل صفحة ويب باستخدام JavaScript:

const { Builder, Capabilities } = require('selenium-webdriver');

async function performanceTest() {
    let driver = await new Builder().withCapabilities(Capabilities.chrome()).build();
    try {
        let startTime = new Date().getTime();
        await driver.get('https://example.com');
        let endTime = new Date().getTime();
        let loadTime = endTime - startTime;
        console.log('Page load time:', loadTime, 'milliseconds');
    } finally {
        await driver.quit();
    }
}

performanceTest();

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

سيلينيوم في أتمتة المواقع وتجريب الويب – Selenium for Web Automation and Web Scraping:

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

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

إليك مثال على كيفية استخدام Selenium للقيام بعملية تسجيل الدخول إلى موقع ويب باستخدام لغة JavaScript:

const { Builder, By, Key, until } = require('selenium-webdriver');

async function performLogin() {
    let driver = await new Builder().forBrowser('chrome').build();
    try {
        await driver.get('https://example.com/login');

        // تعبئة حقول تسجيل الدخول
        await driver.findElement(By.id('username')).sendKeys('myUsername');
        await driver.findElement(By.id('password')).sendKeys('myPassword');

        // النقر على زر تسجيل الدخول
        await driver.findElement(By.id('loginButton')).click();

        // انتظار تحميل الصفحة الرئيسية بعد تسجيل الدخول
        await driver.wait(until.urlIs('https://example.com/dashboard'), 5000);

        console.log('تم تسجيل الدخول بنجاح!');
    } catch (error) {
        console.error('حدث خطأ أثناء عملية تسجيل الدخول:', error);
    } finally {
        await driver.quit();
    }
}

performLogin();

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

سيلينيوم لضمان التوافق عبر المتصفحات المختلفة – Selenium for Browser Compatibility:

Selenium يوفر دعمًا شاملاً لاختبار تطبيقات الويب عبر متصفحات متعددة، مما يسمح للمطورين بضمان توافق تطبيقاتهم مع مختلف المتصفحات المستخدمة بشكل شائع مثل Chrome وFirefox وEdge وغيرها.

باستخدام Selenium WebDriver، يمكن للمطورين كتابة سيناريوهات اختبار تفاعلية تشمل العديد من المتصفحات. على سبيل المثال، يمكن للمطورين تشغيل نفس سيناريو الاختبار على متصفحات متعددة ومراقبة سلوك التطبيق عبر كل منها لضمان عدم وجود مشاكل توافق.

لنلقي نظرة على كيفية استخدام Selenium لاختبار تطبيق عبر متصفحات متعددة بلغة JavaScript:

const { Builder, By, Key, until } = require('selenium-webdriver');

async function testAcrossMultipleBrowsers() {
    // اختيار المتصفحات المراد اختبار التطبيق عليها
    const browsers = ['chrome', 'firefox', 'edge'];

    // التكرار على كل متصفح وتنفيذ الاختبار
    for (let browserName of browsers) {
        let driver = await new Builder().forBrowser(browserName).build();
        try {
            await driver.get('https://example.com');

            // اختبار سلوك التطبيق على المتصفح الحالي
            // يمكن إضافة المزيد من الاختبارات هنا

            console.log(`تم اختبار التطبيق بنجاح على المتصفح: ${browserName}`);
        } catch (error) {
            console.error(`حدث خطأ أثناء اختبار التطبيق على المتصفح: ${browserName}`, error);
        } finally {
            await driver.quit();
        }
    }
}

testAcrossMultipleBrowsers();

في هذا السيناريو، يتم استخدام Selenium لتشغيل نفس سيناريو الاختبار على متصفحات متعددة، حيث يتم تكرار الاختبار عبر كل متصفح محدد مسبقًا. هذا يسمح للمطورين بالتحقق من سلوك التطبيق عبر مجموعة متنوعة من المتصفحات وضمان أنه يعمل بشكل صحيح عبر كل منها.

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

اشترك فى القائمة البريدية

عن الكاتب

شارك على وسائل التواصل

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

تسعة عشر − عشرة =