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 TestLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(5)
def test_login(self):
driver = self.driver
driver.get('https://example.com/login')
# Wait for username field and enter username
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, 'username'))
)
driver.find_element(By.ID, 'username').send_keys('testuser')
# Wait for password field and enter password
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, 'password'))
)
driver.find_element(By.ID, 'password').send_keys('password123')
# Wait for login button and click
login_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, 'login-btn'))
)
login_button.click()
# Verify redirection to dashboard
WebDriverWait(driver, 10).until(
EC.url_contains('/dashboard')
)
self.assertIn('/dashboard', driver.current_url)
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()