Selenium WebDriver Architecture কি ?

Selenium WebDriver Architecture এর পরিবর্তন টা শুরু হয়েছে মূলত সিলিনিয়াম ৩ ভার্সন ও সিলিনিয়াম ৪ ভার্সন এর মধ্যে থেকে। এই বিষয়টা সীমিত পরিশরে যদি বুঝতে চাই তাহলে প্রথমে সিলিনিয়াম ৩ ভার্সন থেকে শুরু করতে হবে। সিলিনিয়াম ৩ এ আমার যে জাভা, পাইথন, সি +, জে এস অর্থাৎ যে Client Libraries ব্যবহার করে অটোমেশনের জন্য কোড তৈরি করি তা ও তা Execute  করি বা প্রয়োগ করি তখন সেই কোড JSON Wire Protocol এ যায়।

 Client Libraries এর সাথে  শুধু JSON Wire Protocol এর মধ্যে কাডের মাধ্যেমে যোগাযোগ স্থাপিত হয়। JSON Wire Protocol সেই কোড গুলো Encoding বা  Decoding করে তা Browser Specific Drivers এর কাছে প্রেরণ করে ও Browser Specific Drivers সেই কোড HTTP করে বিভিন্ন ব্রাউজারে প্রেরণ করে।

 


 মনে করি, আমি একটি কোড লিখেছি জাভাতে এখন সেটি JSON Wire Protocol এ যাবে, JSON Wire Protocol থেকে সেটি ব্রাউজার অনুযায়ী নিদিষ্ট ড্রাইভে যাবে এবং সেখান থেকে সেই কোড HTTP Protocol  হয়ে নিদিষ্ট ব্রাউজারে চালু হবে।

Client Libraries সংযোগ স্থাপন করে JSON Wire Protocol এর সাথে, JSON Wire Protocol সংযোগ স্থাপন করে Browser Specific Drivers এর সাথে ও Browser Specific Drivers সংযোগ স্থাপন করে নিদিষ্ট Browser এর সাথে।

  সিলিনিয়াম ৩.৮ ভার্সন পর্যন্ত এই পদ্ধতি চালু আছে। সিলিনিয়াম এর চতুর্থ ভার্সন থেকে নতুন একটি পদ্ধতির সূচনা হয়েছে যাকে বলা হয় W3C Protocol.  এই পদ্ধতিতে JSON Wire Protocol এর পরিবর্তে W3C Protocol ব্যবহার করা হয়।

W3C হল: World Wide Web Consortium বা  www Consortium. এটি মূলত একধরনের নিয়ম বা পদ্ধতি যেটি Web Application ডিজাইন বা তৈরি করতে ব্যবহার করা হয়। বর্তমানে সকল ব্রাউজার ও ব্রাউজার ড্রাইভ W3C Standard অনুযায়ী কাজ করে। ফলে পূর্বের মত JSON Wire Protocol এর মাধ্যমে Encoding বা  Decoding করে Client Libraries এর সাথে Browser Specific Drivers এর যোগাযোগ স্থাপন করতে হয় না।  কারন Client Libraries সরাসরি W3C Standard অনুসরণ করে Browser Specific Drivers এর সাথে যোগাযোগ করতে সক্ষম। আর বর্তমান সকল Browser Specific Drivers ও সকল  Browser W3C Standard অনুসরণ করে।

আরো ভালো করে বোঝার জন্য বলতে পারি যে, মনে করুন আপনি শুধু বাংলা ভাষা জানেন, আপনি অন্য একজনের সাথে যোগাযোগ করতে চাচ্ছেন যিনি ইংরেজি ভাষা জানেন। তাহলে আপনাদের কথার আদান-প্রদান করতে একজন অনুবাদকের প্রয়োজন হবে যিনি আপনাদের কথা  ট্রান্সলেট করে দিবে।

এখানে Client Libraries হলেন আপনি, JSON Wire Protocol হল অনুবাদক ও Browser Specific Drivers হল ইংরেজি ভাষক। এখানে যেহুতু আপনি একজনের মাধ্যম নিয়ে অন্য জনের সাথে কথা বলছেন তাই আপনাদের কথোপোকথনটা পরিপূর্ণ না বা ত্রুটিপূর্ন হতে পারে এবং ধীর গতি সম্পন্ন।

এখন মনে করুন, আপনি একজনের থাকে কথা বলছেন যিনি বাংলা জানেন। তাহলে আপনাদের দুই জনের মধ্যে কথোপোকথন করার জন্য কোন অনুবাদকের প্রয়োজন হচ্ছে না। আপনারা শক্তিশালী যোগাযোগ স্থাপন করতে ও দ্রুত যোগাযোগ স্থাপন করতে পারবেন।

এখানে আপনি হলেন Client Libraries, আপনারা কথা বলছেন বাংলায় বা W3C Standard এ, আর যার থাকে আপনি কথা বলছেন তিনি হলেন Browser Specific Drivers।

 

W3C Standard এ নতুন কিছু ফিচার সংযুক্ত করা হয়েছে।  যেমন: জুম করা, কিবোর্ড এর ফাংশান ইত্যাদি। এতে তথ্য আদান-প্রদান অত্যান্ত সুবিধাজনক।