tests: start fixing selenium tests

This commit is contained in:
Jens Langhammer
2021-02-21 23:30:31 +01:00
parent 2dd8119abe
commit 217595bb01
3 changed files with 56 additions and 16 deletions

View File

@ -25,6 +25,7 @@ from selenium.common.exceptions import (
from selenium.webdriver.common.by import By
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support.ui import WebDriverWait
from structlog.stdlib import get_logger
@ -43,14 +44,16 @@ class SeleniumTestCase(StaticLiveServerTestCase):
"""StaticLiveServerTestCase which automatically creates a Webdriver instance"""
container: Optional[Container] = None
wait_timeout: int
def setUp(self):
super().setUp()
self.wait_timeout = 60
makedirs("selenium_screenshots/", exist_ok=True)
self.driver = self._get_driver()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.wait = WebDriverWait(self.driver, 60)
self.wait = WebDriverWait(self.driver, self.wait_timeout)
self.apply_default_data()
self.logger = get_logger()
if specs := self.get_container_specs():
@ -112,6 +115,18 @@ class SeleniumTestCase(StaticLiveServerTestCase):
"""same as self.url() but show URL in shell"""
return f"{self.live_server_url}/#{reverse(view, kwargs=kwargs)}"
def get_shadow_root(
self, selector: str, container: Optional[WebElement] = None
) -> WebElement:
"""Get shadow root element's inner shadowRoot"""
if not container:
container = self.driver
shadow_root = container.find_element(By.CSS_SELECTOR, selector)
element = self.driver.execute_script(
"return arguments[0].shadowRoot", shadow_root
)
return element
def assert_user(self, expected_user: User):
"""Check users/me API and assert it matches expected_user"""
self.driver.get(self.url("authentik_api:user-me") + "?format=json")