This test uses POM to separate page details from test steps. The HomePage class holds locators and actions. The test calls these actions to perform a search.
from selenium import webdriver
from selenium.webdriver.common.by import By
class HomePage:
def __init__(self, driver):
self.driver = driver
self.search_box = (By.NAME, "q")
self.search_button = (By.NAME, "btnK")
def enter_search(self, text):
self.driver.find_element(*self.search_box).send_keys(text)
def click_search(self):
self.driver.find_element(*self.search_button).click()
# Test script
def test_google_search():
driver = webdriver.Chrome()
driver.get("https://www.google.com")
home = HomePage(driver)
home.enter_search("Selenium POM")
# Normally we would wait here, but for simplicity we just click
home.click_search()
print("Search performed successfully")
driver.quit()
if __name__ == "__main__":
test_google_search()