34. Scalable Page Object Model Architecture in Python

Enterprise Page Object Pattern in Python

from selenium.webdriver.common.by import By

class BasePage:
def __init__(self, driver):
self.driver = driver

def open(self, url: str):
self.driver.get(url)

class LoginPage(BasePage):
USERNAME_INPUT = (By.ID, "username")
PASSWORD_INPUT = (By.ID, "password")
LOGIN_BTN = (By.ID, "login-btn")

def login(self, username, password):
self.driver.find_element(*self.USERNAME_INPUT).send_keys(username)
self.driver.find_element(*self.PASSWORD_INPUT).send_keys(password)
self.driver.find_element(*self.LOGIN_BTN).click()

Task

  • Implement simple LoginPage class:
  • 1. __init__(self, driver) storing self.driver = driver.
  • 2. USERNAME = (By.ID, "user").
  • 3. enter_username(self, text) calling self.driver.find_element(*self.USERNAME).send_keys(text).
πŸ’‘Common doubts
Did you like the problem?
Lesson 34 of 43
Python
Loading code editor…
Next