π Setup & Open Browser
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10) # optional: wait up to 10s for elements
driver.get("<http://localhost:8080/my-account/>") # open page
π Browser Navigation
| Action |
Code |
| Open URL |
driver.get("http://...") |
| Back |
driver.back() |
| Forward |
driver.forward() |
| Refresh |
driver.refresh() |
| Close browser |
driver.quit() |
π Finding Elements
| By |
Example |
| ID |
driver.find_element(By.ID, "reg_email") |
| Name |
driver.find_element(By.NAME, "username") |
| Class Name |
driver.find_element(By.CLASS_NAME, "btn") |
| Tag Name |
driver.find_element(By.TAG_NAME, "input") |
| Link Text |
driver.find_element(By.LINK_TEXT, "My Account") |
| Partial Link Text |
driver.find_element(By.PARTIAL_LINK_TEXT, "Account") |
| CSS Selector |
driver.find_element(By.CSS_SELECTOR, "input#username") |
| XPath |
driver.find_element(By.XPATH, "//input[@id='username']") |
βοΈ Interacting with Elements
| Action |
Code |
| Type text |
element.send_keys("text") |
| Click |
element.click() |
| Clear field |
element.clear() |
| Get text |
element.text |
| Get attribute |
element.get_attribute("value") |
| Check if displayed |
element.is_displayed() |
π€ Waits
| Type |
Example |
| Implicit wait |
driver.implicitly_wait(10) |
| Explicit wait |
|
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "foo")))
π Useful Extras
| Task |
Code |
| Take screenshot |
driver.save_screenshot("screenshot.png" |
| Handle alert |
|
alert = driver.switch_to.alert
alert.accept() # or alert.dismiss()
``` |
| Switch to frame | `driver.switch_to.frame("frameName")` |
| Switch back | `driver.switch_to.default_content()` |
| Switch tab/window |
```python
driver.switch_to.window(driver.window_handles[1])
``` |
---
### β
Pro Tips
- Always close browser with `driver.quit()` at the end.
- Use `try/finally` to ensure the browser closes even if test fails.
- Avoid hard sleeps (`time.sleep()`) β use waits instead.
---