সিলেনিয়ামের সিঙ্ক্রোনাইজেশন কনসেপ্টে ইমপ্লিসিট এবং এক্সপ্লিসিট ওয়েট রয়েছে। পেজ ফুলি লোড হওয়া পর্যন্ত অপেক্ষা করার জন্য এক্সপ্লিসিট ওয়েট ব্যবহার করা উচিত। এটি নির্দিষ্ট এলিমেন্টের উপস্থিতির জন্য প্রतीক্ষা করে।
ইমপ্লিমেন্টেশন
WebDriverWait এবং ExpectedConditions ক্লাস ব্যবহার করে presence_of_element_located কন্ডিশন দিয়ে পেজ লোড যাচাই করা হয়।
উদাহরণ
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
try:
wait = WebDriverWait(driver, 8)
wait.until(EC.presence_of_element_located((By.TAG_NAME, "h1")))
print("Page load happened")
except TimeoutException:
print("Timeout happened no page load")
finally:
driver.close()
এখানে h1 ট্যাগ উপস্থিত হওয়া পর্যন্ত সর্বোচ্চ ৮ সেকেন্ড অপেক্ষা করবে। এলিমেন্ট পাওয়া গেলে "Page load happened" প্রিন্ট হবে, না পেলে টাইমআউট এরর দেবে।
দ্রষ্টব্য: সিলেনিয়াম ৪+ এ find_element_by_* ডিপ্রিকেটেড, By ক্লাস ব্যবহার করুন।