কম্পিউটার টিউটোরিয়াল

Python-এ Selenium WebDriver ব্যবহার করে JavaScript রান করা

Python-এ Selenium WebDriver দিয়ে JavaScript এক্সিকিউট করা যায় execute_script মেথড ব্যবহার করে। DOM এলিমেন্টের সাথে ইন্টারঅ্যাকশনের জন্য JavaScript খুব কার্যকর, বিশেষ করে স্ক্রোলিং, হিডেন এলিমেন্ট ক্লিক ইত্যাদি কাজে।

সিনট্যাক্স: পেজ বটমে স্ক্রোল করা

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

উদাহরণ: পেজের নিচে স্ক্রোল করা

from selenium import webdriver

driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/tutor_connect/index.php")

# পেজের নিচে স্ক্রোল করুন
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

JavaScript Executor দিয়ে ক্লিক করা

WebDriver-এর নেটিভ click() ফেইল করলে (এলিমেন্ট কভারড, হিডেন, ডিজেবল্ড) JavaScript click() ব্যবহার করা হয়।

সিনট্যাক্স

element = driver.find_element_by_css_selector("#id")
driver.execute_script("arguments[0].click();", element)

উদাহরণ: লিংক ক্লিক করা

from selenium import webdriver

driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/index.htm")

# এলিমেন্ট খুঁজে বের করুন (XPath দিয়ে)
element = driver.find_element_by_xpath("//*[text()='Library']")

# JavaScript দিয়ে ক্লিক করুন
driver.execute_script("arguments[0].click();", element)

print("Page title after click: " + driver.title)

আউটপুট

পেজ টাইটেল প্রিন্ট হবে ক্লিকের পর।

ব্যাখ্যা

  • execute_script মেথড ব্রাউজারের কনটেক্সটে JavaScript রান করে।
  • arguments[0] রিপ্রেজেন্ট করে পাস করা প্রথম আর্গুমেন্ট (WebElement)।
  • window.scrollTo(x, y) দিয়ে পেজ স্ক্রোল করা যায়।
  • Python-এ find_element_by_* মেথডগুলো Selenium 4-এ ডিপ্রিকেটেড, নতুন সিনট্যাক্স: driver.find_element(By.CSS_SELECTOR, "#id")।

সাধারণ JavaScript অপারেশনস Python-এ

# এলিমেন্টে স্ক্রোল ইন্টু ভিউ
driver.execute_script("arguments[0].scrollIntoView(true);", element)

# এলিমেন্ট হাইলাইট করা (ডিবাগিংয়ের জন্য)
driver.execute_script("arguments[0].style.border='3px solid red'", element)

# ইনপুট ফিল্ডে মান সেট করা (বাইপাস ভ্যালিডেশন)
driver.execute_script("arguments[0].value = 'new value';", element)

# পেজ রিলোড
driver.execute_script("location.reload();")
  1. সিলেনিয়াম ও পাইথনে ওয়েব এলিমেন্ট ও টেক্সট খুঁজে বের করা

  2. পাইথন ব্যবহার করে ফেসবুক লগইন

  3. পাইথনে WhatsApp অটোমেশন (WhatsApp using Python)

  4. পাইথনে cx_Freeze ব্যবহার করে এক্সিকিউটেবল বানানো