অনুমান কি? মাইক্রোসফ্ট সবেমাত্র ঘড়ির কাঁটার মতোনাট্যকারের একটি নতুন সংস্করণ বাদ দিয়েছে! বাগ ফিক্স এবং এপিআই পরিবর্তনগুলি বজায় রাখা একটি পূর্ণ-সময়ের গিগের মতো অনুভব করতে পারে এবং দুর্দান্ত বৈশিষ্ট্যগুলি মিস করা একটি স্ন্যাপ। কিন্তু মন খারাপ করবেন না; আমরা আপনার ফিরে পেয়েছি!
সর্বশেষ নাট্যকার আপডেটের মাধ্যমে একটি যাত্রায় আমাদের সাথে যোগ দিন। আমরা আপনাকে লুপের মধ্যে থাকতে সাহায্য করতে এখানে আছি, কিছু নতুন কৌশল বেছে নিতে এবং আপনার দুর্দান্ত দক্ষতার সাথে আপনার সহকর্মীদের বাহ! ডুব দিতে প্রস্তুত? চলো যাই!
আপনি যদি কিছু দুর্দান্ত উদাহরণের মাধ্যমে সর্বশেষ নাট্যকারের আপডেটগুলি সরাসরি দেখতে আগ্রহী হন, তাহলে নাট্যকার YouTube চ্যানেলে যান এবং মাসিক "নাট্যকারে নতুন কী" ভিডিওটি দেখুন:
নাট্যকারে প্রবর্তিত সর্বশেষ বৈশিষ্ট্যগুলি অন্বেষণ করার এবং সেগুলি থেকে কীভাবে সর্বাধিক লাভ করা যায় তা দেখার সময় এসেছে 🔍
browserType.launchPersistentContext(userDataDir, options)
এর options
অবজেক্ট আর্গুমেন্টে FirefoxUserPrefs
ক্ষেত্র যোগ করা হয়েছে। এই পদ্ধতিটি userDataDir
এ অবস্থিত স্থায়ী স্টোরেজ ব্যবহার করে একটি ব্রাউজার চালু করে এবং ব্রাউজার প্রসঙ্গ উদাহরণ প্রদান করে। firefoxUserPrefs
`একটি বস্তু যা ফায়ারফক্স ব্যবহারকারীর পছন্দগুলি সম্বলিত about:config
এ উল্লেখ করা হয়েছে।reason
ক্ষেত্র page.close(options)
, browserContext.close(options)
, এবং browser.close(options)
পদ্ধতির options
অবজেক্ট আর্গুমেন্টে যোগ করা হয়েছে। reason
হল একটি স্ট্রিং যাতে একটি close()
কলের ফলে বিঘ্নিত সমস্ত ক্রিয়াকলাপ দ্বারা রিপোর্ট করা ত্রুটির বার্তা রয়েছে।
যদিও firefoxUserPrefs
কাস্টম কনফিগারেশনের প্রয়োজনে ফায়ারফক্স ব্যবহারকারীদের বিশেষভাবে পূরণ করে, reason
ক্ষেত্রটি অনেক বেশি সাধারণ উদ্দেশ্য। নীচের স্নিপেটে হিসাবে এটি ব্যবহার করুন:
await browser.close({ reason: "Scraping process completed!" })
browser.close()
দ্বারা বিঘ্নিত সমস্ত মুলতুবি ক্রিয়াকলাপ এখন "স্ক্র্যাপিং প্রক্রিয়া সম্পন্ন হয়েছে!" বার্তা সহ একটি জাভাস্ক্রিপ্ট ত্রুটি নিক্ষেপ করবে।
এই বৈশিষ্ট্যটি কীভাবে ব্যবহার করবেন? কল্পনা করুন যে আপনার টার্গেট পৃষ্ঠাটি একটি গুরুত্বপূর্ণ কাজের মধ্যে রয়েছে- ধরা যাক, কিছু ডেটা পুনরুদ্ধারের জন্য অপেক্ষা করা হচ্ছে। হঠাৎ, একটি অপ্রত্যাশিত ত্রুটি পপ আপ, এবং আপনি gracefully ব্রাউজার বন্ধ করার প্রয়োজন সম্মুখীন হয়.
reason
ছাড়াই, চলমান টাস্কের জন্য রিসোর্স রিলিজ করা হয়েছে কিনা এবং কেন অপারেশন ব্যাহত হয়েছে সে সম্পর্কে আপনি অজ্ঞ থাকবেন। কী ঘটছে তা না জানা খারাপ, বিশেষত যখন আপনাকে একটি স্বয়ংক্রিয় ওয়েব স্ক্র্যাপিং স্ক্রিপ্টের লগগুলিতে ত্রুটির কারণ পরিদর্শনের দায়িত্ব দেওয়া হয়। সেখানেই 'কারণ' ক্ষেত্রটি আপনার উদ্ধারে আসে, আপনাকে শ্রমসাধ্য তদন্তের দিনগুলি বাঁচায়।
দুর্দান্ত, এই API ভূমিকা ডিবাগিংকে অনেক সহজ করে তোলে! 🚀
নাট্যকার টেস্ট জেনারেটর টুল , আপনি একটি ব্রাউজারে ক্রিয়া সম্পাদন করার সাথে সাথে স্বয়ংক্রিয়ভাবে পরীক্ষা তৈরি করার জন্য ডিজাইন করা হয়েছে, এখন নিম্নলিখিত বোতামগুলি প্রদান করে:
expect(locator).toBeVisible()
নির্দেশনা তৈরি করে যাচাই করুন যে নির্বাচিত উপাদানটি দৃশ্যমান।expect(locator).toContainText()
নির্দেশের মাধ্যমে নির্দিষ্ট পাঠ্য রয়েছে।expect(locator).toHaveValue()
নির্দেশনা যোগ করে নির্বাচন করা উপাদানটির একটি নির্দিষ্ট মান আছে কিনা তা পরীক্ষা করুন।
এটির চিত্র : আপনি একটি জটিল কাজ করছেন, যেমন একটি ডায়নামিক ওয়েব পৃষ্ঠার জন্য একটি ওয়েব স্ক্র্যাপার তৈরি করা । অনুমান করুন আপনাকে নিশ্চিত করতে হবে যে পৃষ্ঠার কিছু উপাদান দৃশ্যমান এবং নির্দিষ্ট পাঠ্য বা মান রয়েছে। এতে কিছু জটিল যুক্তি যুক্ত হবে 👎। কিন্তু ধরে রাখুন—এই নতুন আপডেটের জন্য ধন্যবাদ, টেস্ট জেনারেটর টুলে কিছু ক্লিকেই সবকিছু ফুটে ওঠে!
নিম্নলিখিত জিআইএফ-এ এই নতুন বৈশিষ্ট্যটি কার্যকর দেখুন:
সেই টেস্ট জেনারেটরের মিথস্ক্রিয়া আপনার জন্য নিম্নলিখিত টাইপস্ক্রিপ্ট পরীক্ষা তৈরি করবে:
import { test, expect } from '@playwright/test'; test('test', async ({ page }) => { await page.goto('https://playwright.dev/'); await expect(page.getByRole('banner')).toContainText('Get started'); });
✨ বেশ জাদুকর, তাই না? ✨
নাট্যকারের প্রধান আপডেটের মহান ঐতিহ্যে, সমর্থিত ব্রাউজারগুলির লাইনআপ নতুন সংস্করণের সাথে আপডেট করা হয়েছে:
কিন্তু এখানেই শেষ নয়! নাট্যকারের বর্তমান সংস্করণটি নিম্নলিখিত স্থিতিশীল চ্যানেলগুলির বিরুদ্ধেও দুর্দান্ত প্রমাণিত হয়েছে:
গুগল ক্রোম 119
মাইক্রোসফট এজ 119
ডাউনলোড অপারেশন ব্যর্থ হলে বা বাতিল হয়ে গেলে download.path()
এবং download.createReadStream()
পদ্ধতিগুলি এখন একটি ত্রুটি নিক্ষেপ করে৷
নাট্যকার ডকার ইমেজ এখন Node.js v20 এর সাথে আসে।
কোনো নতুন আপডেট মিস করতে চান না? নাট্যকার রিলিজ নোট পৃষ্ঠায় চোখ রাখুন!
এখন, আপনি অবশ্যই ভাবছেন, "আমি কীভাবে এই দুর্দান্ত নতুন সংযোজনগুলিতে হাত পেতে পারি?" ভাল, সর্বশেষ সংস্করণে নাট্যকারকে আপডেট করে, আমার বন্ধু!
শুধু নিচের কমান্ডটি ফায়ার করুন:
npm install @playwright/test@latest
এবং এর সাথে ব্রাউজার ইনস্ট্যান্স আপগ্রেড করতে ভুলবেন না:
npx playwright install
ভয়লা ! আপনি সর্বশেষ নাট্যকারের আপডেটগুলি পেতে প্রস্তুত!
আপনার প্লেরাইটের সংস্করণ যতই আপ-টু-ডেট হোক না কেন, বেশিরভাগ সাইট এখনও আপনার স্বয়ংক্রিয় স্ক্রিপ্টগুলি সনাক্ত করতে এবং ব্লক করতে সক্ষম হবে৷ কিন্তু এটা কিভাবে সম্ভব? ঠিক আছে, প্লেরাইটের মতো লাইব্রেরি দ্বারা নিয়ন্ত্রিত হেডলেস ব্রাউজারগুলিতে বিশেষ কনফিগারেশন এবং সেটিংস জড়িত থাকে যা অ্যান্টি-বট সমাধান দ্বারা লাল পতাকা হিসাবে দেখা হয়। ধারাবাহিকতা? তাত্ক্ষণিক ব্লক বা ক্যাপচা এবং অন্যান্য বিরক্তিকর বাধাগুলির অবাঞ্ছিত চেহারা।
এখন, আপনি হয়তো ভাবছেন, "এটি এড়াতে আমি কি শুধু আমার ব্রাউজার সেটিংস পরিবর্তন করতে পারি না?"
এত দ্রুত না, বাবু! কমপক্ষে তিনটি বাধ্যতামূলক কারণে এটি একটি দুর্দান্ত ধারণা নয়:
সমস্যাটি ব্রাউজার অটোমেশন লাইব্রেরিতে নয় (Playwright rocks! 🤘), বরং নিয়ন্ত্রণাধীন ব্রাউজার নিয়ে। সমাধানটি একটি অত্যন্ত কাস্টমাইজযোগ্য ব্রাউজার হবে যা:
বিশ্বাস করুন বা না করুন, এটি কিছু দূরের মরীচিকা নয়। এটাই বাস্তব এবং ব্রাইট ডেটার স্ক্র্যাপিং ব্রাউজার সলিউশনটি ঠিক তাই!
নাট্যকার হলেন ব্রাউজার অটোমেশন লাইব্রেরির রক স্টার, এবং ঠিক যেমন সান্তা ক্লজ ক্রিসমাসের আগের দিন উপহার বিতরণ করে, Microsoft প্রতি মাসে একটি বড় নতুন আপডেট প্রকাশ করে। এখানে, আপনি দেখেছেন কিভাবে সর্বশেষ প্লেরাইটের আপডেটগুলি থেকে সর্বাধিক সুবিধা পেতে হয়, তবে আসুন এটির মুখোমুখি হই, সেগুলি আপনাকে উন্নত বট সনাক্তকরণ প্রযুক্তি সহ সাইটগুলিতে যাদুকরীভাবে অদৃশ্য করে তুলবে না৷
ব্রাইট ডেটা থেকে স্ক্র্যাপিং ব্রাউজার সলিউশন দিয়ে সেই বুলেটটি ডজ করুন এবং ইন্টারনেটকে সকলের জন্য, সর্বত্র, এমনকি স্বয়ংক্রিয় স্ক্রিপ্টের মাধ্যমেও সর্বজনীন স্থান করার জন্য আমাদের মিশনে যোগ দিন!
পরবর্তী সময় পর্যন্ত, স্বাধীনতার সাথে ওয়েব অন্বেষণ চালিয়ে যান!