Selenium-এ একটি লিংকে ক্লিক করার দুটি পদ্ধতি আছে: WebDriver-এর নেটিভ click() এবং JavaScript Executor-এর click()। উভয়ই ব্যবহৃত হয় কিন্তু কিছু পরিস্থিতিতে একটা অন্য ტা থেকে ভালো কাজ করে।
WebDriver click()
Selenium WebDriver-এর বিল্ট-ইন click() মেথড ব্যবহার করে লিংক ক্লিক করা যায়। লিংক খুঁজে বের করতে linkText বা partialLinkText লোকেটর ব্যবহার করা হয়।
driver.findElement(By.linkText("লিংক টেক্সট"))- সম্পূর্ণ লিংক টেক্সট দিয়ে খুঁজে।driver.findElement(By.partialLinkText("আংশিক টেক্সট"))- আংশিক মিল দিয়ে খুঁজে।- লিংকগুলো HTML-এ
<a>ট্যাগে থাকে।
কোড উদাহরণ (Java)
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
public class DriverClick {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.tutorialspoint.com/about/about_careers.htm");
// লিংক টেক্সট দিয়ে খুঁজে ক্লিক
driver.findElement(By.linkText("Write for us")).click();
System.out.println("Page title after click: " + driver.getTitle());
}
}
JavaScript Executor click()
JavaScript Executor ব্যবহার করে ক্লিক করার জন্য executeScript মেথডে arguments[0].click() এবং ক্লিক করা WebElement পাস করা হয়।
কোড উদাহরণ (Java)
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.By;
public class DriverClickJs {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.tutorialspoint.com/about/about_careers.htm");
// লিংক খুঁজে বের করুন
WebElement l = driver.findElement(By.linkText("Write for us"));
// JavaScript Executor দিয়ে ক্লিক
JavascriptExecutor j = (JavascriptExecutor) driver;
j.executeScript("arguments[0].click();", l);
System.out.println("Page title after click: " + driver.getTitle());
}
}
কবে কোনটি ব্যবহার করবেন?
| পদ্ধতি | সুবিধা | ব্যবহার করবেন যখন |
|---|---|---|
| WebDriver click() | রিয়েল ইউজার ইন্টারঅ্যাকশন অনুকরণ করে, ইভেন্ট হ্যান্ডলার ট্রিগার করে | সাধারণ ক্লিকের জন্য, সবসময় প্রথম চয়েস |
| JS click() | ওভারল্যাপিং এলিমেন্ট, অদৃশ্য এলিমেন্ট, ডিজেবল্ড এলিমেন্ট ক্লিক করতে পারে | WebDriver click() ফেইল করলে, hidden/covered এলিমেন্টের জন্য |
দ্রষ্টব্য
JavaScript click() ব্রাউজারের নেটিভ ইভেন্ট সিস্টেম বাইপাস করে, তাই কিছু কেসে এটি বেশি নির্ভরযোগ্য কিন্তু রিয়েল ইউজার বhaviour অনুকরণ করে না।