Course → 1 · Selenium automation → Page Object Model
1 · Selenium automation
Intro to Page Objects
14 min · Module 11
Page Object Model (POM) wraps a page’s locators and actions in a class. Tests then read like user stories.
Example / notes
from selenium.webdriver.common.by import By
class LoginPage:
url = "http://127.0.0.1:8000/lab/login/"
def __init__(self, driver):
self.driver = driver
def open(self):
self.driver.get(self.url)
return self
def login(self, username, password):
self.driver.find_element(By.ID, "username").send_keys(username)
self.driver.find_element(By.ID, "password").send_keys(password)
self.driver.find_element(By.ID, "login-button").click()
return self
def success_message(self):
return self.driver.find_element(By.ID, "flash-success").text
# usage
# page = LoginPage(driver).open().login("demo", "demo1234")
# assert "/lab/welcome/" in driver.current_url
# assert "Welcome" in page.success_message()
Practice in Lab: /lab/login/
Modules in this track
- 6. Getting Started
- 7. Finding Elements
- 8. Interactions
- 9. Waits
- 10. Assertions & Structure
- 11. Page Object Model
- 12. Alerts, Frames & Windows
- 13. Headless & Next Steps