Initial commit
This commit is contained in:
commit
9795660e1f
43 changed files with 2757 additions and 0 deletions
90
config/ui_config.py
Normal file
90
config/ui_config.py
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
from typing import Dict, Any
|
||||
from config.environment import EnvironmentLoader
|
||||
|
||||
class UIConfig:
|
||||
"""Настройки UI тестов"""
|
||||
|
||||
# Базовые настройки
|
||||
UI_BASE_URL = EnvironmentLoader.get_env_variable('UI_BASE_URL', 'http://localhost:5173')
|
||||
UI_TIMEOUT = EnvironmentLoader.get_env_variable('UI_TIMEOUT', 30) # секунды
|
||||
|
||||
# Настройки браузера
|
||||
BROWSER_NAME = EnvironmentLoader.get_env_variable('BROWSER_NAME', 'firefox').lower()
|
||||
BROWSER_HEADLESS = EnvironmentLoader.get_env_variable('BROWSER_HEADLESS', True)
|
||||
BROWSER_WIDTH = EnvironmentLoader.get_env_variable('BROWSER_WIDTH', 1920)
|
||||
BROWSER_HEIGHT = EnvironmentLoader.get_env_variable('BROWSER_HEIGHT', 1080)
|
||||
BROWSER_LANGUAGE = EnvironmentLoader.get_env_variable('BROWSER_LANGUAGE', 'en')
|
||||
BROWSER_FULLSCREEN = EnvironmentLoader.get_env_variable('BROWSER_FULLSCREEN', False)
|
||||
|
||||
# Настройки Chrome
|
||||
CHROME_HEADLESS_NEW = EnvironmentLoader.get_env_variable('CHROME_HEADLESS_NEW', True)
|
||||
CHROME_DISABLE_GPU = EnvironmentLoader.get_env_variable('CHROME_DISABLE_GPU', True)
|
||||
CHROME_NO_SANDBOX = EnvironmentLoader.get_env_variable('CHROME_NO_SANDBOX', True)
|
||||
CHROME_DISABLE_DEV_SHM = EnvironmentLoader.get_env_variable('CHROME_DISABLE_DEV_SHM', True)
|
||||
|
||||
# Настройки Firefox
|
||||
FIREFOX_HEADLESS = EnvironmentLoader.get_env_variable('FIREFOX_HEADLESS', True)
|
||||
|
||||
# Настройки ожиданий
|
||||
IMPLICIT_WAIT = EnvironmentLoader.get_env_variable('IMPLICIT_WAIT', 10) # секунды
|
||||
EXPLICIT_WAIT = EnvironmentLoader.get_env_variable('EXPLICIT_WAIT', 30) # секунды
|
||||
PAGE_LOAD_TIMEOUT = EnvironmentLoader.get_env_variable('PAGE_LOAD_TIMEOUT', 60) # секунды
|
||||
SCRIPT_TIMEOUT = EnvironmentLoader.get_env_variable('SCRIPT_TIMEOUT', 30) # секунды
|
||||
|
||||
# Настройки скриншотов
|
||||
SCREENSHOTS_ON_FAILURE = EnvironmentLoader.get_env_variable('SCREENSHOTS_ON_FAILURE', True)
|
||||
SCREENSHOTS_DIR = EnvironmentLoader.get_env_variable('SCREENSHOTS_DIR', 'screenshots')
|
||||
SCREENSHOTS_FORMAT = EnvironmentLoader.get_env_variable('SCREENSHOTS_FORMAT', 'png')
|
||||
|
||||
# Пути
|
||||
URLS = {
|
||||
"team": EnvironmentLoader.get_env_variable('UI_URL_TEAM', '/team'),
|
||||
"blog": EnvironmentLoader.get_env_variable('UI_URL_BLOG', '/blog')
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def get_url(cls, url_name: str, **kwargs) -> str:
|
||||
"""Получение endpoint с подстановкой параметров"""
|
||||
url_template = cls.URLS.get(url_name)
|
||||
if not url_template:
|
||||
raise ValueError(f"URL '{url_name}' not found in configuration")
|
||||
|
||||
return cls.UI_BASE_URL + url_template.format(**kwargs)
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_browser_options(cls) -> Dict[str, Any]:
|
||||
"""Получение опций браузера"""
|
||||
options = {
|
||||
'headless': cls.BROWSER_HEADLESS,
|
||||
'width': cls.BROWSER_WIDTH,
|
||||
'height': cls.BROWSER_HEIGHT,
|
||||
'language': cls.BROWSER_LANGUAGE,
|
||||
}
|
||||
|
||||
if cls.BROWSER_NAME == 'chrome':
|
||||
options.update({
|
||||
'headless_new': cls.CHROME_HEADLESS_NEW,
|
||||
'disable_gpu': cls.CHROME_DISABLE_GPU,
|
||||
'no_sandbox': cls.CHROME_NO_SANDBOX,
|
||||
'disable_dev_shm': cls.CHROME_DISABLE_DEV_SHM,
|
||||
})
|
||||
elif cls.BROWSER_NAME == 'firefox':
|
||||
options.update({
|
||||
'headless': cls.FIREFOX_HEADLESS,
|
||||
})
|
||||
|
||||
return options
|
||||
|
||||
@classmethod
|
||||
def get_wait_config(cls) -> Dict[str, Any]:
|
||||
"""Получение конфигурации ожиданий"""
|
||||
return {
|
||||
'implicit': cls.IMPLICIT_WAIT,
|
||||
'explicit': cls.EXPLICIT_WAIT,
|
||||
'page_load': cls.PAGE_LOAD_TIMEOUT,
|
||||
'script': cls.SCRIPT_TIMEOUT,
|
||||
}
|
||||
|
||||
# Экспорт конфигурации
|
||||
ui_config = UIConfig
|
||||
Loading…
Add table
Add a link
Reference in a new issue