WebDriver BiDi-এর শক্তিকে কাজে লাগান: Puppeteer-এর সাথে Chrome এবং Firefox অটোমেশন

পুতুল এখন ফায়ারফক্সের সাথে কথা বলে! 🎉 কিন্তু অপেক্ষা করুন, তাই না? 🤔 চলুন, WebDriver BiDi-এ ঢুকে পড়ি, Puppeteer-এর নতুন প্রোটোকল এবং আবিষ্কার করি ফায়ারফক্স অটোমেশন কর্মপ্রবাহের জন্য এই উত্তেজনাপূর্ণ বিকাশের অর্থ কী।

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

আমাদের আগের স্ট্যাটাস আপডেটের পর থেকে, আমরা W3C ব্রাউজার টেস্টিং এবং টুলস ওয়ার্কিং গ্রুপের সাথে ঘনিষ্ঠভাবে কাজ চালিয়ে যাচ্ছি। Puppeteer এখন লগিং , নেটওয়ার্ক ইভেন্ট এবং ফর্ম জমা দেওয়ার মতো বৈশিষ্ট্যগুলি প্রয়োগ করে, WebDriver BiDi অগ্রগতির জন্য ধন্যবাদ৷

আমাকে কোড দেখান

নিম্নলিখিত Puppeteer স্ক্রিপ্টটি কার্যকরভাবে ওয়েবড্রাইভার বিডিকে দেখায় এবং ক্রোম এবং ফায়ারফক্সে নির্বিঘ্নে কাজ করে:

  1. প্রোটোকল সেটিং দিয়ে আপনার নির্বাচিত ব্রাউজার চালু করুন।
  2. ত্রুটির জন্য কনসোল বার্তা মনিটর.
  3. একটি ওয়েব পেজে নেভিগেট করুন, ভিউপোর্টের মাত্রা সেট করুন এবং একটি বোতামে ক্লিক করুন।
  4. পাঠ্য বিষয়বস্তু যাচাই করুন এবং সমতা নিশ্চিত করুন।
import * as assert from 'node:assert'; 
import puppeteer from 'puppeteer';

// Arrange: Launch browser with WebDriver BiDi
const browser = await puppeteer.launch({
  protocol: 'webDriverBiDi',
     product: 'firefox', // or 'chrome'
});
const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();

// Arrange: Monitor console messages
page.on('console', message => {
  if (message.type() != 'error') return;
  console.log('RECEIVED: %s', message.text());
});

// Action
await page.setViewport({width: 600, height: 1041});
await page.goto('https://coffee-cart.app/?breakable=1');

const coffee = await page.waitForSelector('[data-test="Espresso"]');
await coffee.click();

// Assert 
const checkout = await page.$('[data-test="checkout"]');
const total = await checkout.evaluate(el => el.textContent);
assert.equal(total, 'Total: $10.00');

browser.close();

Puppeteer-এ WebDriver BiDi-এর অগ্রগতি

Puppeteer-এ WebDriver BiDi-এর ক্ষমতার পরিমাপ করতে, আমরা ব্যাপক Puppeteer টেস্ট স্যুট ব্যবহার করেছি। যদিও Puppeteer এবং WebDriver BiDi বাস্তবায়নের কাজ এখনও চলছে এবং Chrome এবং CDP-এর সাথে Puppeteer-এর সমস্ত ঘণ্টা এবং বাঁশি এখনও নেই, আমরা আপনাকে জিনিসগুলি কোথায় দাঁড়িয়েছে তার একটি পরিষ্কার ছবি দিতে চাই।

ফায়ারফক্স:

  • WebDriver BiDi ব্যবহারিক অটোমেশন কাজের জন্য উপযুক্ত মানের একটি স্তরে পৌঁছেছে। মোজিলা সফলভাবে ফায়ারফক্স এবং সিডিপি থেকে ফায়ারফক্স এবং ওয়েবড্রাইভার বিডি-তে pdf.js-এর জন্য Puppeteer পরীক্ষাগুলি পোর্ট করেছে
  • 55% এরও বেশি পরীক্ষা সফলভাবে WebDriver BiDi এর সাথে পাস করে, এটির ক্রমবর্ধমান কার্যকারিতা প্রদর্শন করে।
  • উল্লেখযোগ্যভাবে, 82 টিরও বেশি নতুন পরীক্ষা দক্ষতার সাথে WebDriver BiDi ব্যবহার করে, আরও উন্নতির পথ প্রশস্ত করে।

ক্রোম:

  • Chrome বর্তমানে WebDriver BiDi-এর সাথে 68% পাস রেট অর্জন করছে, নির্ভরযোগ্য কার্যকারিতা প্রদর্শন করছে। যদিও সিডিপি-ভিত্তিক পদ্ধতির তুলনায় আরও অপ্টিমাইজেশনের জন্য জায়গা আছে, এই প্রতিশ্রুতিশীল উত্তেজনাপূর্ণ ভবিষ্যতের উন্নয়ন।

কুকি অ্যাক্সেস, নেটওয়ার্ক রিকোয়েস্ট ইন্টারসেপশন, নির্দিষ্ট অনুকরণ বৈশিষ্ট্য এবং অনুমতির মতো কিছু বৈশিষ্ট্য এখনও সক্রিয় মানককরণের অধীনে রয়েছে। তারা প্রস্তুত হয়ে গেলে তারা পাপেটিয়ারে একত্রিত হবে। ইতিমধ্যে, WebDriver BiDi দ্বারা সমর্থিত Puppeteer বৈশিষ্ট্যগুলির সম্পূর্ণ তালিকা দেখুন।

Puppeteer ইতিমধ্যে ফায়ারফক্স সমর্থন করেনি?

যদিও Puppeteer আগে CDP-এর সীমিত এবং নন-ক্রস-ব্রাউজার বাস্তবায়ন ব্যবহার করে ফায়ারফক্সের জন্য পরীক্ষামূলক সহায়তার প্রস্তাব দিয়েছিল, এটি সীমাবদ্ধতার শিকার হয়েছিল এবং এটি একটি টেকসই সমাধান ছিল না।

নতুন পরীক্ষামূলক Firefox এবং WebDriver BiDi বাস্তবায়ন এই সমস্যাগুলিকে সমাধান করে।

আমরা জানি আপনার অতিরিক্ত প্রশ্ন থাকতে পারে যেমন:

  • ফায়ারফক্সের CDP সমর্থন কি চলে যাচ্ছে?
  • সব Puppeteer বৈশিষ্ট্য সমর্থিত?

বিস্তারিত উত্তর এবং আরও তথ্যের জন্য, ফায়ারফক্স থেকে ডেডিকেটেড ঘোষণা দেখুন!

সামনে উত্তেজনাপূর্ণ সময়

ক্রস-ব্রাউজার টেস্টিং হল ডেভেলপারের অন্যতম প্রধান চাহিদা তাই আমরা WebDriver BiDi-কে Puppeteer-এ একীভূত করার নেতৃত্ব দিতে উত্তেজিত, যা আরও নির্বিঘ্ন এবং দক্ষ ক্রস-ব্রাউজার অটোমেশন অভিজ্ঞতার দিকে একটি টার্নিং পয়েন্ট চিহ্নিত করে৷ আমরা আপনাকে Puppeteer এর সাথে WebDriver BiDi অন্বেষণ করতে উত্সাহিত করি।

সামনের দিকে তাকিয়ে, WebDriver BiDi অবশেষে Puppeteer-এর জন্য ডিফল্ট প্রোটোকল হয়ে উঠবে, একটি ধারাবাহিক এবং ক্ষমতায়িত অটোমেশন অভিজ্ঞতার পথ প্রশস্ত করবে।

WebDriver BiDi-এর সাথে Puppeteer পরীক্ষা চালানোর সময় আপনি যে কোনো সমস্যার সম্মুখীন হন, আমাদের Puppeteer সমস্যা ট্র্যাকারে সমস্যাগুলি খুলুন।