Test Overview
This test reads user login data from a JSON file and verifies successful login on a web page.
This test reads user login data from a JSON file and verifies successful login on a web page.
import json import unittest from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC class TestLoginWithJSON(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get('https://example.com/login') def test_login(self): with open('testdata.json', 'r') as file: data = json.load(file) username = data['username'] password = data['password'] driver = self.driver WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'username'))) driver.find_element(By.ID, 'username').send_keys(username) driver.find_element(By.ID, 'password').send_keys(password) driver.find_element(By.ID, 'login-btn').click() WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'welcome-msg'))) welcome_text = driver.find_element(By.ID, 'welcome-msg').text self.assertIn('Welcome', welcome_text) def tearDown(self): self.driver.quit() if __name__ == '__main__': unittest.main()
| Step | Action | System State | Assertion | Result |
|---|---|---|---|---|
| 1 | Test starts and Chrome browser opens | Browser window opens at https://example.com/login page | - | PASS |
| 2 | Reads username and password from testdata.json file | JSON file loaded with keys 'username' and 'password' | - | PASS |
| 3 | Waits until username input field is present | Username input field visible on login page | Presence of element located by ID 'username' | PASS |
| 4 | Enters username and password into input fields | Username and password fields filled with test data | - | PASS |
| 5 | Clicks the login button | Login button clicked, page starts loading | - | PASS |
| 6 | Waits until welcome message element is present | Welcome message element visible on page | Presence of element located by ID 'welcome-msg' | PASS |
| 7 | Checks that welcome message contains 'Welcome' | Welcome message text retrieved | Assert 'Welcome' in welcome message text | PASS |
| 8 | Test ends and browser closes | Browser window closed | - | PASS |