olivetin/docs/modules/ROOT/images/advanced_configuration/diagnostics/setup_diagnostics.py

55 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""Open the diagnostics page from advanced_configuration/diagnostics.adoc."""
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
def _wait_for_diagnostics_page(driver, timeout=30):
WebDriverWait(driver, timeout).until(
lambda d: d.execute_script("return !!window.client")
)
def ready(d):
try:
ssh_heading = d.find_element(
By.XPATH,
'//*[self::h2 or self::h3][contains(normalize-space(), "SSH")]',
)
server_diagnostics_heading = d.find_element(
By.XPATH,
'//*[self::h2 or self::h3][contains(normalize-space(), "Server Diagnostics")]',
)
key_value = d.find_element(
By.XPATH,
'//dt[contains(normalize-space(), "Found Key")]/following-sibling::dd[1]',
)
config_value = d.find_element(
By.XPATH,
'//dt[contains(normalize-space(), "Found Config")]/following-sibling::dd[1]',
)
except Exception:
return False
return all(
element.is_displayed()
for element in (
ssh_heading,
server_diagnostics_heading,
key_value,
config_value,
)
) and all(
element.text.strip() not in ("", "?")
for element in (key_value, config_value)
)
WebDriverWait(driver, timeout).until(ready)
def run(driver):
_wait_for_diagnostics_page(driver)
time.sleep(0.2)