setup_closed.py 753 B

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/env python3
  2. """Open the Water Valve dashboard with the valve closed."""
  3. import time
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.support.ui import WebDriverWait
  6. def wait_for_dashboard(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. def wait_for_state(driver, state, timeout=30):
  11. def ready(d):
  12. try:
  13. return f"State: {state}" in d.find_element(By.TAG_NAME, "main").text
  14. except Exception:
  15. return False
  16. WebDriverWait(driver, timeout).until(ready)
  17. def run(driver):
  18. wait_for_dashboard(driver)
  19. wait_for_state(driver, "closed")
  20. time.sleep(0.2)