Selenium WebDriver দিয়ে JavaScript এক্সিকিউট করে তার রিটার্ন ভ্যালু পাওয়া যায় executeScript মেথড ব্যবহার করে। JavaScript কোডে return কিওয়ার্ড ব্যবহার করতে হয়।
সিনট্যাক্স
JavascriptExecutor j = (JavascriptExecutor) driver;
j.executeScript("return document.getElementsByName('txtSearchText')[0].value");
উদাহরণ: এডিট বক্সের মান পড়া
ইনপুট বক্সে "Selenium" লিখা আছে, সেটি JavaScript দিয়ে পড়া হবে।
কোড উদাহরণ (Java)
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class JavascriptValue {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();
String url = "https://www.tutorialspoint.com/tutor_connect/index.php";
driver.get(url);
driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
// এলিমেন্ট খুঁজে টেক্সট লিখুন
WebElement t = driver.findElement(By.id("txtSearchText"));
t.sendKeys("Selenium");
// JavaScript executor দিয়ে মান পড়ুন
JavascriptExecutor j = (JavascriptExecutor) driver;
String s = (String) j.executeScript("return document.getElementsByName('txtSearchText')[0].value");
System.out.print("Value is: " + s);
driver.quit();
}
}
আউটপুট
কনসোলে: Value is: Selenium
ব্যাখ্যা
executeScriptমেথডে JavaScript কোড স্ট্রিং হিসেবে পাস করা হয়।returnকিওয়ার্ড দিয়ে মান রিটার্ন করা হয়।- রিটার্ন টাইপ অনুযায়ী জাভাতে কাস্ট করা হয় (String, Integer, Boolean, List, WebElement ইত্যাদি)।
document.getElementsByName('txtSearchText')[0].valueDOM API দিয়ে ইনপুটের মান পাওয়া হয়েছে।
রিটার্ন টাইপ হ্যান্ডলিং
| JS রিটার্ন টাইপ | Java টাইপ |
|---|---|
| String, Number, Boolean | String, Long/Double, Boolean |
| WebElement | WebElement |
| Array / NodeList | List<Object> |
| Object | Map<String, Object> |
| null / undefined | null |
Python সংস্করণ
value = driver.execute_script("return document.getElementsByName('txtSearchText')[0].value")
print("Value is:", value)