Selenium WebDriver Basics

Selenium WebDriver fundamentals for browser automation.

Setup (Python)

from selenium import webdriver
from selenium.webdriver.common.by import By

Chrome driver
driver = webdriver.Chrome()

Firefox driver
driver = webdriver.Firefox()

Open URL
driver.get("https://example.com")

Close
driver.quit()

Find Elements

By ID
element = driver.find_element(By.ID, "myId")

By class
element = driver.find_element(By.CLASS_NAME, "myClass")

By CSS selector
element = driver.find_element(By.CSS_SELECTOR, ".class #id")

By XPath
element = driver.find_element(By.XPATH, "//div[@id=myId]")

Multiple elements
elements = driver.find_elements(By.TAG_NAME, "a")

Interactions

Click
element.click()

Send keys
element.send_keys("text")

Clear
element.clear()

Get text
text = element.text

Get attribute
value = element.get_attribute("value")

Is displayed
if element.is_displayed():
    print("Visible")

Waits

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

Explicit wait
wait = WebDriverWait(driver, 10)
element = wait.until(
    EC.presence_of_element_located((By.ID, "myId"))
)

Implicit wait
driver.implicitly_wait(10)