Update tests
This commit is contained in:
63
tests/frontend/helpers/wait_helpers.py
Normal file
63
tests/frontend/helpers/wait_helpers.py
Normal file
@ -0,0 +1,63 @@
|
||||
"""
|
||||
Collection of waiting statements.
|
||||
"""
|
||||
|
||||
from selenium.webdriver.remote.webdriver import WebDriver
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
from selenium.webdriver.support import expected_conditions as EC
|
||||
from selenium.webdriver.common.by import By
|
||||
|
||||
|
||||
def wait_for_url_change(driver: WebDriver, old_url: str, timeout: int = 10) -> None:
|
||||
WebDriverWait(driver, timeout).until(lambda d: d.current_url != old_url)
|
||||
|
||||
|
||||
def wait_until_url_contains(driver: WebDriver, text: str, timeout: int = 10) -> None:
|
||||
WebDriverWait(driver, timeout).until(lambda d: text in d.current_url)
|
||||
|
||||
|
||||
def wait_for_element(driver: WebDriver, by: str, value: str, timeout: int = 10):
|
||||
return WebDriverWait(driver, timeout).until(
|
||||
EC.presence_of_element_located((by, value))
|
||||
)
|
||||
|
||||
|
||||
def wait_for_element_with_text(
|
||||
driver: WebDriver, tag: str, text: str, timeout: int = 10
|
||||
):
|
||||
return WebDriverWait(driver, timeout).until(
|
||||
EC.text_to_be_present_in_element((By.TAG_NAME, tag), text)
|
||||
)
|
||||
|
||||
|
||||
def wait_for_clickable(driver: WebDriver, by: str, value: str, timeout: int = 10):
|
||||
return WebDriverWait(driver, timeout).until(EC.element_to_be_clickable((by, value)))
|
||||
|
||||
|
||||
def wait_for_element_to_be_visisble(driver: WebDriver, id: str, timeout: int = 10):
|
||||
return WebDriverWait(driver, timeout).until(
|
||||
EC.visibility_of_element_located((By.ID, id))
|
||||
)
|
||||
|
||||
|
||||
def wait_for_element_to_be_disabled(
|
||||
driver: WebDriver, by: str, value: str, timeout: int = 10
|
||||
):
|
||||
"""Wait for an element to be disabled."""
|
||||
return WebDriverWait(driver, timeout).until(
|
||||
EC.none_of(EC.element_to_be_clickable((by, value)))
|
||||
)
|
||||
|
||||
|
||||
def wait_for_alert(driver: WebDriver, timeout: int = 10):
|
||||
"""Wait for an alert."""
|
||||
return WebDriverWait(driver, timeout).until(lambda d: d.switch_to.alert)
|
||||
|
||||
|
||||
def wait_for_element_to_disappear(
|
||||
driver: WebDriver, by: str, value: str, timeout: int = 10
|
||||
):
|
||||
"""Wait for an element to disappear."""
|
||||
return WebDriverWait(driver, timeout).until(
|
||||
EC.none_of(EC.presence_of_element_located((by, value)))
|
||||
)
|
||||
Reference in New Issue
Block a user