findElement() and findElements() in Selenium WebDriver
আমরা যদি কোন ওয়েব পেইজের সাথে ইন্টারেক্ট করতে চাই তাহলে ওয়েব পেইজের ওয়েব এলিমেন্ট গুলো কোথায় আছে সেটা সবার আগে বের করতে হয়। Web Element চেনা/খুজে বের করার জন্য Selenium Webdriver দুটি পদ্ধতি ব্যবহার করে থাকে। এর মধ্যে একটি পদ্ধতি হচ্ছে findElement() এবং আরেকটি হচ্ছে findElements()। আমরা প্রায় সময়-ই কনফিউজড হয়ে যাই কখন কোনটা ব্যবহার করবো সেটা নিয়ে। সহজে যাতে বুঝতে পারি সেইজন্যই এই লেখা।
findElement() কমান্ডটি ব্যবহার করা হয়ে থাকে মূলত একটি ওয়েব পেজের একটি নির্দিষ্ট web element খুঁজে বের করার জন্য, অপরদিকে findElements() কমান্ডটি ব্যবহার করা হয় একটি ওয়েব পেজের web element এর লিস্ট খুজে বের করার জন্য।
Command Syntax of findElement():
findElement() কমান্ড, By object কে প্যারামিটার হিসেবে নেয়। By object বিভিন্ন locator strategy ব্যবহার করে এলিমেন্ট খুজে বের করে।
Locator strategy অনেক ধরনের হয়ে থাকে। যেমনঃ
সকল Locator Strategy নিয়ে সামনে আরো জানবো। তবে সবথেকে বেশি Xpath, locator strategy ব্যবহার করেই এলিমেন্ট খুজে বের করা হয়। Find element by Xpath শুধু একটি web element খুজে বের করে।
Locator Value সবসময় ইউনিক ভ্যালু হয়ে থাকে যাতে সহজেই এলিমেন্ট চেনা যায়। যদি Locator strategy না ম্যাচ করে তাহলে NoSuchElementException নামের একটা exception দেখায়।
Example:
Command Syntax of findElements():
findElements() কমান্ড, By object কে প্যারামিটার হিসেবে নেয় এবং web elements এর একটি List return করে। যদি locator strategy এবং locator value না থাকে তাহলে খালি লিস্ট রিটার্ন করবে। Array-র মতন এখানে প্রতিটা এলিমেন্ট এর ইন্ডেক্স নাম্বার ০ থেকে শুরু হয়।
Example:
Locator গুলো সহজে খুজে পেতে ওয়েব ব্রাউজারে আমরা কিছু এক্সটেনশন (SelectorsHub ,Chropath, Xpath finder) ব্যবহার করে থাকি। Chropath একটি ফ্রি extension. যেকোনো ব্রাউজারেই Chropath এক্সটেনশন available আছে । নিচে আমি Chrome , Firefox এবং Microsoft edge এর জন্য ডাউনলোড লিংক গুলো দিয়ে দিচ্ছি.
Microsoft Edge:(https://microsoftedge.microsoft.com/addons/detail/chropath/ggabncnodmglgcdbmmmnkekknpehhcea)
Nice writeup. Carry on :)