ميزة التشغيل الآلي باستخدام WebDriver BiDi متوفّرة الآن في BrowserStack

على مدار السنوات الثلاث الماضية، تعاون فريق Chrome المعني بالتشغيل الآلي للمتصفّحات مع مورّدي المتصفحات والأدوات الرئيسيين الآخرين، مثل BrowserStack، لإنشاء WebDriver BiDi، وهو بروتوكول جديد للتشغيل الآلي للمتصفّحات يمكّن من سير عمل التشغيل الآلي ثنائي الاتجاه على جميع المتصفّحات. في السابق، لم يكن بإمكانك تنفيذ هذه الخطوات إلا باستخدام بروتوكول Chrome DevTools الحصري في المتصفّحات المستندة إلى Chromium.

يشكّل اليوم إنجازًا مهمًا لهذا الجهد المشترَك، إذ أصبح WebDriver BiDi أخيرًا جاهزًا للاستخدام في التطبيقات من قِبل المطوّرين، بدءًا من BrowserStack اليوم.

Selenium وBrowserStack

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

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

يمكن أن تسهّل حلول Selenium Grid المستضافة، مثل BrowserStack، تنفيذ اختباراتك على العديد من الأنظمة الأساسية والأجهزة المختلفة بدون إدارتها بنفسك.

WebDriver BiDi على Selenium Grid

يستند Selenium إلى معيار WebDriver (يُرجى ملاحظة عدم توفّر ميزة BiDi) ولكنّه كان يتضمّن دعمًا تجريبيًا لواجهة برمجة التطبيقات WebDriver BiDi لبعض الوقت. اعتبارًا من اليوم، يمكنك استخدام تعليمات WebDriver BiDi في مرحلة الإنتاج على Selenium Grid المستضافة على BrowserStack.

يتيح ذلك أخيرًا ميزات مثل اعتراض الطلبات والمحاكاة المتقدّمة ومعالجة أحداث المتصفّح في الوقت الفعلي، وليس فقط في Chrome، ولكن في كل متصفّح يتيح WebDriver BiDi.

يوضّح المثال التالي كيفية الانتظار لرصد أحداث السجلّات باستخدام WebDriver BiDi على BrowserStack. تتوفّر السجلات التي تم رصدها أيضًا للفحص على automate.browserstack.com:

const webdriver = require('selenium-webdriver');

// Insert credentials from https://www.browserstack.com/accounts/profile/details
const USERNAME = '<YOUR_USERNAME>';
const ACCESS_KEY = '<YOUR_ACCESS_KEY>';

(async () => {
  const driver = await (new webdriver.Builder()
    .withCapabilities({
      browserName: 'chrome',
      'bstack:options': {
        seleniumVersion: '4.22.0',
        seleniumBidi: true, // Enable WebDriver BiDi.
      },
    })
    .usingServer(
      `https://${USERNAME}:${ACCESS_KEY}@hub-cloud.browserstack.com/wd/hub`
    )
    .build());

  // Add a listener for log events.
  await driver.script().addConsoleMessageHandler((logEntry) => {
    console.log(logEntry.text);
  });

  await driver.get(
    'https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html'
  );

  // Trigger a console log on the demo page.
  await driver.findElement({ id: 'consoleLog' }).click();
  await driver.quit();

  // Inspect logs on automate.browserstack.com!
})();

BrowserStack هي مجرد البداية

يهنئ فريق التشغيل الآلي في متصفّح Chrome فريق BrowserStack على إطلاق دعم WebDriver BiDi اليوم. ونتطلّع أيضًا إلى رؤية توسيع نطاق إتاحة WebDriver BiDi على BrowserStack والأدوات الأخرى مثل Selenium، بالإضافة إلى المتصفحات الرئيسية الأخرى في الأسابيع المقبلة.

إذا أثار هذا الإعلان اهتمامك بالاختبار، ولكنك لم تبدأ رحلة الاختبار بعد، احرص على الاطّلاع على دورة Learn Testing على web.dev.