Skip to content

Instantly share code, notes, and snippets.

@siddydutta
Created August 30, 2021 12:54
Show Gist options
  • Save siddydutta/a7267a4c9a79cd41c62863e15e1f6482 to your computer and use it in GitHub Desktop.
Save siddydutta/a7267a4c9a79cd41c62863e15e1f6482 to your computer and use it in GitHub Desktop.
Coursera - Continuous Delivery & DevOps - System Test Example
# -*- coding: utf-8 -*-
'''
This is a program for University of Virginia's "Continous Delivery and DevOps"
course on Coursera. This script demonstrates the System Test example using
the Selenium webdriver.
'''
from random import randint
from selenium import webdriver
from time import sleep
# Initial setup
DRIVER_PATH = r'chromedriver.exe' # chrome web driver executable for Selenium
URL = 'https://hvacnhurry.com/'
driver = webdriver.Chrome(DRIVER_PATH)
driver.get(URL)
print('Opened page')
sleep(5) # For page load, sleep 5 seconds
# Navigate to register page
auth_href = driver.find_element_by_id('menu-item-107') # Log In Element
assert auth_href.text == 'LOG IN'
auth_href.click()
print('Clicked on log in element')
sleep(2)
register_link = driver.find_element_by_id('register-link')
register_link.click()
print('Clicked on register button')
sleep(2)
# Fill form
email_field = driver.find_element_by_id('register_email')
# Create random email with appropriate domain
random_email = f'acowan{randint(100,999)}@alexandercowan.com'
email_field.send_keys(random_email)
reg_pwd_field = driver.find_element_by_id('register_pwd')
reg_pwd_field.send_keys('d@rden23')
reg_re_pwd_field = driver.find_element_by_id('register_re_pwd')
reg_re_pwd_field.send_keys('d@rden23')
reg_button = driver.find_element_by_xpath('//*[@id="register-form"]/button')
reg_button.click()
print('Filled form for: ' + random_email)
sleep(5)
# Final assertion
auth_href = driver.find_element_by_id('menu-item-107')
print('Checking final assertion')
assert auth_href.text == 'LOG OUT'
auth_href.click()
print('Test Complete')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment