werefox-cafe/tests/test_suite/root_domain_test.py

66 lines
2.0 KiB
Python

#!/usr/bin/python
# Necessary imports
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
def check_subdomains(driver):
# setup wait and grab original tab/window
wait = WebDriverWait(driver, 10)
main_tab = driver.current_window_handle
# Try to grab button elements of maintained subdomains
try:
sites = driver.find_element(By.TAG_NAME, "nav").find_elements(By.XPATH, "./div/div")
except:
print("Couldn't find the element.")
driver.close()
driver.quit()
return False
# Iterate through subdomains
for e in sites:
try:
link_element = e.find_element(By.XPATH, "./a")
link_element.click()
wait.until(expected_conditions.number_of_windows_to_be(2))
for window_handle in driver.window_handles:
if window_handle != main_tab:
driver.switch_to.window(window_handle)
driver.close()
driver.switch_to.window(main_tab)
except:
print("Couldn't find the element somewhere...")
driver.close()
driver.quit()
return False
return True
def execute_tests():
# Set up webdriver and necessary variables for later
chrome_options = webdriver.ChromeOptions()
print('Attempting to establish connection to remote webdriver...')
driver = webdriver.Remote(command_executor='http://192.168.0.202:4444', options=chrome_options)
print('Connection established.')
# Load requested site
print('Attempting to get page...')
driver.get("https://werefox.cafe")
print('Page loaded.')
# Check all the subdomain buttons work
print('Attempting to click through subdomain buttons...')
if(check_subdomains(driver)):
print('Test succeeded.')
else:
print('Test failed.')
# Close browser and lean up
driver.close()
driver.quit()
execute_tests()