setup_sidebar.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env python3
  2. """Capture the default sidebar navigation style."""
  3. import time
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.support.ui import WebDriverWait
  6. def _wait_for_sidebar_navigation(driver, timeout=30):
  7. WebDriverWait(driver, timeout).until(
  8. lambda d: bool(d.find_element(By.TAG_NAME, "body").get_attribute("loaded-dashboard"))
  9. )
  10. driver.find_element(By.ID, "sidebar-toggler-button").click()
  11. WebDriverWait(driver, timeout).until(
  12. lambda d: d.find_element(By.ID, "mainnav").is_displayed()
  13. )
  14. driver.find_element(By.CSS_SELECTOR, "#mainnav .stick-toggle").click()
  15. def ready(d):
  16. try:
  17. my_servers = d.find_element(
  18. By.XPATH,
  19. '//*[@id="mainnav"]//a[contains(normalize-space(), "My Servers")]',
  20. )
  21. my_containers = d.find_element(
  22. By.XPATH,
  23. '//*[@id="mainnav"]//a[contains(normalize-space(), "My Containers")]',
  24. )
  25. disk_space = d.find_element(By.CSS_SELECTOR, '[title="Check disk space"]')
  26. ssh = d.find_element(By.CSS_SELECTOR, '[title="Setup easy SSH"]')
  27. except Exception:
  28. return False
  29. return all(element.is_displayed() for element in (my_servers, my_containers, disk_space, ssh))
  30. WebDriverWait(driver, timeout).until(ready)
  31. def run(driver):
  32. _wait_for_sidebar_navigation(driver)
  33. time.sleep(0.2)