setup_dropdown.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/env python3
  2. """Prepare the dropdown argument form screenshot."""
  3. import time
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.support.ui import WebDriverWait
  6. def _wait_for_body_attr(driver, attr, timeout=15):
  7. WebDriverWait(driver, timeout).until(
  8. lambda d: bool(d.find_element(By.TAG_NAME, "body").get_attribute(attr))
  9. )
  10. def _open_choice_list(driver, input_id):
  11. combobox_input = driver.find_element(By.ID, input_id)
  12. combobox_input.click()
  13. WebDriverWait(driver, 15).until(
  14. lambda d: len(
  15. d.find_elements(
  16. By.CSS_SELECTOR,
  17. f"#{input_id}-listbox li, #{input_id} + input + ul li",
  18. )
  19. )
  20. >= 2
  21. or len(d.find_elements(By.CSS_SELECTOR, ".choice-combobox-list li")) >= 2
  22. )
  23. def run(driver):
  24. _wait_for_body_attr(driver, "loaded-dashboard")
  25. driver.find_element(By.CSS_SELECTOR, '[title="Print a message"]').click()
  26. _wait_for_body_attr(driver, "loaded-argument-form")
  27. _open_choice_list(driver, "message")
  28. time.sleep(0.2)