Mô tả
Sử dụng execute_script() trong Selenium Python để chạy JavaScript: scroll trang, click element, v.v.
Cuộn trang (scroll)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
Click element bằng JS
element = driver.find_element_by_css_selector("#id")
driver.execute_script("arguments[0].click();", element)
Ví dụ hoàn chỉnh
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")
# Click "Library" link bằng JS
element = driver.find_element_by_xpath("//*[text()='Library']")
driver.execute_script("arguments[0].click();", element)
print("Page title after click: " + driver.title)
Các trường hợp dùng JS Executor
- Scroll trang (Selenium không có API scroll trực tiếp)
- Click element bị che, ẩn, hoặc trong shadow DOM
- Set giá trị input bypass validation
- Trigger custom events
- Lấy performance timing, localStorage, sessionStorage
Lưu ý
find_element_by_* đã deprecated từ Selenium 4. Nên dùng driver.find_element(By.CSS_SELECTOR, "...).