| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/usr/bin/env python3
- """Prepare the Firefox-style suggestions screenshot."""
- import time
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- def _wait_for_body_attr(driver, attr, timeout=15):
- WebDriverWait(driver, timeout).until(
- lambda d: bool(d.find_element(By.TAG_NAME, "body").get_attribute(attr))
- )
- def _open_form(driver):
- _wait_for_body_attr(driver, "loaded-dashboard")
- action = driver.find_element(
- By.CSS_SELECTOR, '[title="Restart Docker Container"]'
- )
- action.click()
- _wait_for_body_attr(driver, "loaded-argument-form")
- driver.execute_script(
- """
- const form = document.getElementById('argument-popup');
- if (form) {
- form.style.margin = '2rem auto';
- form.style.maxWidth = '520px';
- }
- """
- )
- def run(driver):
- _open_form(driver)
- driver.execute_script(
- """
- const input = document.getElementById('container');
- input.focus();
- input.value = '';
- document.getElementById('doc-suggestions-overlay')?.remove();
- const rect = input.getBoundingClientRect();
- const menu = document.createElement('div');
- menu.id = 'doc-suggestions-overlay';
- menu.style.position = 'fixed';
- menu.style.left = `${rect.left}px`;
- menu.style.top = `${rect.bottom + 2}px`;
- menu.style.width = `${rect.width}px`;
- menu.style.background = '#fff';
- menu.style.border = '1px solid #ccc';
- menu.style.boxShadow = '0 1px 4px rgba(0, 0, 0, 0.15)';
- menu.style.font = '13px sans-serif';
- menu.style.zIndex = '9999';
- for (const label of [
- 'Firewall Controller',
- 'graefik',
- 'grafana',
- 'plex',
- 'WiFi Controller',
- ]) {
- const row = document.createElement('div');
- row.textContent = label;
- row.style.padding = '4px 8px';
- menu.appendChild(row);
- }
- document.body.appendChild(menu);
- """
- )
- time.sleep(0.2)
|