WebDriver BiDi: 2023 স্ট্যাটাস আপডেট

এই নিবন্ধটি 2023 সালে WebDriver BiDi-এ নতুন কী আছে তার একটি ওভারভিউ দেয়।

WebDriver BiDi কি?

WebDriver হল একটি ব্রাউজার অটোমেশন প্রোটোকল, যা ChromeDriver, GeckoDriver এবং WebKitDriver-এ বাস্তবায়ন সহ W3C স্ট্যান্ডার্ড হিসাবে সংজ্ঞায়িত করা হয়েছে।

Chromium এর নিজস্ব মালিকানাধীন ব্রাউজার অটোমেশন প্রোটোকল রয়েছে: Chrome DevTools প্রোটোকল, বা CDP।

এই দুটি প্রোটোকলের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে: WebDriver হল একটি ইন্টারঅপারেবল স্ট্যান্ডার্ড, কিন্তু প্রোটোকলটি কম দক্ষ এবং CDP এর বৈশিষ্ট্যগুলির অভাব রয়েছে। বিপরীতে, সিডিপি আরও দক্ষ এবং শক্তিশালী, কিন্তু কম আন্তঃক্রিয়াশীল।

এই কারণেই 2020 সালে, W3C ব্রাউজার টেস্টিং এবং টুলস ওয়ার্কিং গ্রুপ WebDriver BiDi- তে কাজ শুরু করেছে, একটি নতুন স্ট্যান্ডার্ড ব্রাউজার অটোমেশন প্রোটোকল যা WebDriver ক্লাসিক এবং CDP প্রোটোকলের মধ্যে ব্যবধান পূরণ করে। উভয় বিশ্বের সেরা! সময়ের সাথে এক নজর পড়ুন: টেস্ট অটোমেশনের বিবর্তন এবং WebDriver BiDi — আরও পটভূমির জন্য ক্রস-ব্রাউজার অটোমেশনের ভবিষ্যত

WebDriver BiDi প্রচেষ্টার মধ্যে রয়েছে মানককরণের কাজ, ওয়েব প্ল্যাটফর্ম পরীক্ষা তৈরি করা এবং বিভিন্ন ব্রাউজার ইঞ্জিনের জন্য বাস্তবায়ন।

আমরা এখন কোথায়?

2022 সালে, Chrome/ChromeDriver 106 এবং Firefox 102 উভয়ই WebDriver BiDi স্ট্যান্ডার্ডের জন্য সমর্থন পাঠিয়েছে।

তারপর থেকে, WebDriver BiDi জনপ্রিয় ফ্রেমওয়ার্কগুলিতে গ্রহণ করেছে, লগিং সমর্থনের মতো অত্যন্ত অনুরোধ করা বৈশিষ্ট্যগুলি আনলক করে শীর্ষ বিকাশকারীর ব্যথার পয়েন্টগুলিকে মোকাবেলা করে৷

WebDriver BiDi দ্বারা চালিত লগিং

একটি সাধারণ ব্যবহারের ক্ষেত্রে স্বয়ংক্রিয়ভাবে যাচাই করা হয় যে কোনো ওয়েব পৃষ্ঠা কোনো কনসোল লগ, সতর্কতা বা ত্রুটি ছাড়াই এবং কোনো ধরা না পড়া জাভাস্ক্রিপ্ট ব্যতিক্রম ছাড়াই লোড হয়। আরেকটি ব্যবহারের ক্ষেত্রে আপনি একটি স্বয়ংক্রিয় পরীক্ষা লিখতে চাইতে পারেন যে একটি ওয়েব পৃষ্ঠা একটি সতর্কবাণী লগ করে বা উদ্দেশ্য করার সময় একটি ব্যতিক্রম নিক্ষেপ করে তা পরীক্ষা করতে। ওয়েবড্রাইভার ক্লাসিক ব্যবহার করে এই সমস্যাগুলি সমাধান করা যাবে না কারণ এটি দ্বিমুখী নয় । WebDriver BiDi এখন এটি সম্ভব করে তোলে।

এখানে সেলেনিয়ামের জাভাস্ক্রিপ্ট ভাষা বাইন্ডিং ব্যবহার করে দ্বিতীয় ব্যবহারের ক্ষেত্রে একটি উদাহরণ বাস্তবায়ন করা হল:

import * as assert from 'node:assert';
import { Builder, LogInspector } from 'selenium-webdriver';
import chrome from 'selenium-webdriver/chrome.js';

const driver = new Builder()
  .forBrowser('chrome')
  .setChromeOptions(new chrome.Options().enableBidi())
  .build();

const inspector = await LogInspector(driver);
await inspector.onConsoleEntry((entry) => {
  console.log(`Console message received: [${
    entry.type}][${entry.level}] ${entry.text}`);
});

await driver.get('https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html');
await driver.findElement({ id: 'consoleLog' }).click();

await driver.quit();

এখানে Puppeteer এর পরীক্ষামূলক WebDriver BiDi সমর্থন ব্যবহার করে একটি উদাহরণ দেওয়া হল:

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch({
  protocol: 'webDriverBiDi',
  headless: 'new',
});

const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();

page.on('console', (message) => {
  console.log(`Console message received: [${
    message.type()
  }] ${message.text()}`);
});

await page.goto(`https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html`);
await page.evaluate(() => {
  document.querySelector('#consoleLog').click();
});

await browser.close();

একই কার্যকারিতা অন্যান্য বিমূর্ত যেমন WebdriverIO এর মাধ্যমে উপলব্ধ।

একটি ভাগ করা পাবলিক রোডম্যাপ

আমরা এখনও W3C ওয়ার্কিং গ্রুপে অংশগ্রহণকারী অন্যান্য ব্রাউজার বিক্রেতা এবং শিল্প স্টেকহোল্ডারদের সহযোগিতায় WebDriver BiDi স্পেসিফিকেশন তৈরি করছি। গ্রুপটি সম্প্রতি একটি শেয়ার্ড রোডম্যাপে সম্মত হয়েছে, আসন্ন স্পেসিফিকেশন এবং বাস্তবায়নের কাজকে সারিবদ্ধ করে পরিষ্কার ব্যবহারকারী-মুখোমুখী এন্ড-টু-এন্ড ব্যবহারের ক্ষেত্রে।

ইন্টারঅপারেবিলিটি

যেহেতু ওয়ার্কিং গ্রুপ সম্মিলিতভাবে আরও বৈশিষ্ট্য নির্দিষ্ট করে, আমরা WebDriver BiDi প্রোটোকলের জন্য ওয়েব প্ল্যাটফর্ম পরীক্ষাও তৈরি করি। এই ভাগ করা টেস্ট স্যুটটি আমাদের বাস্তবায়নের সঠিকতা এবং আন্তঃকার্যযোগ্যতা যাচাই করতে সাহায্য করে। আপনি WPT ড্যাশবোর্ডে বিভিন্ন ব্রাউজারের সর্বশেষ পরীক্ষার ফলাফল দেখতে পারেন।

সাপোর্টিং WebDriver BiDi: আপনি কিভাবে সাহায্য করতে পারেন?

আপনি কি WebDriver BiDi-এর সাথে ব্রাউজার অটোমেশনের ভবিষ্যত সম্পর্কে উত্তেজিত? আপনি কীভাবে আপনার সমর্থন দেখাতে পারেন তা এখানে:

  • একজন প্রাথমিক পরীক্ষক এবং গ্রহণকারী হোন এবং WebDriver BiDi এর ভবিষ্যত গঠনে সহায়তা করুন।
  • শব্দ ছড়িয়ে দিন! #WebDriverBiDi হ্যাশট্যাগ ব্যবহার করে সোশ্যাল মিডিয়াতে প্রকল্পটি শেয়ার করুন।
  • সমর্থনের জন্য জিজ্ঞাসা করুন. একটি বৈশিষ্ট্য অনুরোধ ফাইল করুন বা WebDriver BiDi গ্রহণ করার জন্য তাদের পরিকল্পনাগুলিতে আপনার প্রিয় সরঞ্জামগুলির সাথে পরীক্ষা করুন৷
  • বিশেষ আলোচনায় অংশগ্রহণ করুন।