In this blog, we’ll walk you through what to do after setting up Selenium, including writing your first test, handling locators and waits, structuring your project, integrating Pytest, and generating HTML reports.
Step 1 – Write Your First Test Script
Start by launching a browser and opening a website:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.maximize_window() driver.get("https://technochords.com/")
Step 2 – Interact with Web Elements
Next, interact with page elements using Selenium locators:
driver.find_element(By.XPATH, "//span[normalize-space()='Blogs']").click()
Common Locator Strategies:
- By.ID - By.NAME - By.CLASS_NAME - By.XPATH - By.CSS_SELECTOR
You might encounter errors like:
- NoSuchElementException - ElementNotVisibleException
Solution: Use Explicit Waits
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC wait = WebDriverWait(driver, 10) wait.until(EC.presence_of_element_located((By.XPATH, "//span[normalize-space()='Blogs']"))).click()
Step 3 – Organize Your Test Script
selenium_test_framework/ ├── tests/ # Test cases │ └── test_home.py ├── pages/ # Page classes (POM) │ └── home_page.py ├── reports/ # Test reports etc… Example: pages/home_page.py from selenium.webdriver.common.by import By class HomePage: def __init__(self, driver): self.driver = driver self.blogs_button = (By.XPATH, "//span[normalize-space()='Blogs']") def open(self, url): self.driver.get(url) self.driver.maximize_window() def click_blogs(self): self.driver.find_element(*self.blogs_button).click() Example: tests/test_home.py from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from pages.home_page import HomePage def test_click_blogs(): driver = webdriver.Chrome(ChromeDriverManager().install()) home = HomePage(driver) home.open("https://technochords.com/") home.click_blogs() assert "blog" in driver.current_url.lower() driver.quit()
Step 4 –Integrate Pytest for Generating Reports
Install Pytest: pip install pytest Check Installation: pytest --version
You might encounter errors like: ‘pytest’ is not recognized as an internal or external command, operable program, or batch file.
Solution:
- Check if pytest is Installed
pip list
- Check PATH Variable (For Windows Users)
pip show pytest
Output might show:
Location: C:\Users\<your-username>\AppData\Local\Programs\Python\Python39\Lib\site-packages
Locate the scripts folder in that directory:
cd C:\Users\<your-username>\AppData\Local\Programs\Python\Python39\Scripts
Add the Scripts folder to the PATH:
Add the Scripts folder (e.g., C:\Users\<your-username>\AppData\Local\Programs\Python\Python39\Scripts) to your PATH variable. Once added, restart your terminal, and the pytest command should work.
Naming Conventions:
– File names must start with test_ or end with _test.py
– Test functions must start with test_
Step 5 –Generate Test Reports with pytest-html
Install pytest-html: pip install pytest-html Generate a Report: pytest --html=report.html