clockevents.py

clockevents.py automates the entire process of logging into a UNLV Workday account by going through the authentication steps using Selenium

By navigating through eleven clicks and inputting necessary user credentials to successfully clock in, clock out, and log meals

Cutting down on the hassle of doing it manually, this script saves me about 15 minutes a week

Key Features

Code Highlights

#Program is now at the portal with clickable images
#Waits until page fully loads all elements using WebDriverWait.
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="selection"]/ul/li[7]/a/img'))
)

#Program clicks on UNLV Image
element.click()

#Program is at the sign in portal
#Input ACE ID:
element = WebDriverWait(driver,10).until(
EC.element_to_be_clickable((By.ID, 'input28'))
)

#Inputting USERNAME and PASSWORD

element.send_keys(USER)

#Searching for password box
element = driver.find_element(By.ID, 'input36')

#Inputing password
element.send_keys(PASSWORD)

Tools and Frameworks

PythonSeleniumChrome WebDriverXPath and ID locators

Demo

Challenges

Oftentimes elements that are incorporated with JavaScript are difficult for Selenium to locate, and an XPATH needs to be found, rather than locating by ID, which is computationally more efficient

Due to JavaScript being present in almost all portals, disabling JavaScript is not an option -- which would make this program faster

Next Steps

This project is still in the works. Planned features include creating a menu for specific clock events and exploring pulling data from the Workday platform, such as total hours worked.