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 TestLoginAcceptance(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get('https://example.com/login')
def test_login_acceptance_criteria(self):
driver = self.driver
wait = WebDriverWait(driver, 10)
# Verify username field is present
username = wait.until(EC.presence_of_element_located((By.ID, 'username')))
self.assertTrue(username.is_displayed())
# Verify password field is present
password = wait.until(EC.presence_of_element_located((By.ID, 'password')))
self.assertTrue(password.is_displayed())
# Verify login button is present
login_button = wait.until(EC.presence_of_element_located((By.ID, 'loginBtn')))
self.assertTrue(login_button.is_displayed())
# Enter valid credentials
username.send_keys('validUser')
password.send_keys('validPass123')
# Click login button
login_button.click()
# Verify successful login message
success_msg = wait.until(EC.presence_of_element_located((By.ID, 'successMessage')))
self.assertEqual(success_msg.text, 'Login successful')
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()