prepare.py 615 B

12345678910111213141516171819
  1. """Waits for the SPA to render before capture."""
  2. import time
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.support.ui import WebDriverWait
  5. def _rendered(driver):
  6. if driver.find_element(By.TAG_NAME, "body").get_attribute("loaded-dashboard"):
  7. return True
  8. if driver.find_elements(By.CSS_SELECTOR, "main table tbody tr"):
  9. return True
  10. return any(rows.text.strip() for rows in driver.find_elements(By.CSS_SELECTOR, ".xterm-rows"))
  11. def run(driver):
  12. WebDriverWait(driver, 30).until(_rendered)
  13. time.sleep(1)
  14. driver.execute_script("window.scrollTo(0, 0);")