Как задать два размера окна браузера (Автоматизация тестирования, Selenium, Python)

Рейтинг: 0Ответов: 0Опубликовано: 26.06.2023

У меня в одном проекте идет два набора тестов для сайта - обычный веб с компа и его адаптивная верстка. Как грамотно разделить функцию browser, чтобы для веб-версии запускался браузер с одним размером окна, а для адаптивной - с другим?

Сейчас у меня в файле conftest.py прописаны отдельно def browser и def browser_mob, что приводит к лишнему дублированию кода. Была мысль в def browser прописать оба варианта размера, используя цикл (if, elif), но пока мозгов не хватает докрутить. Не понимаю, как сделать так, чтобы тесты знали, к какому размеру им обращаться. Прикрепляю код:

def browser(request):
if request.config.getoption("bn") == "remote_chrome":
    options = webdriver.ChromeOptions()
    options.add_argument("--disable-dev-shm-usage")
    options.add_argument("--no-sandbox")
    capabilities = {
        "browserName": "chrome",
        "enableLog": False,
        "enableVNC": False,
        "enableVideo": False}
    url = os.environ['SELENOID_URL']
    conn = webdriver.remote.remote_connection.RemoteConnection(url)
    print("\nstart browser for test..")
    browser = webdriver.Remote(command_executor=conn, desired_capabilities=capabilities, options=options)
    browser.set_window_size(1920,1080)
    yield browser
    print("\nquit browser..")
    browser.quit()
elif request.config.getoption("bn") == "chrome":
    browser = webdriver.Chrome()
    browser.set_window_size(375, 812)
    yield browser
    browser.quit()

В conftest использую также:

def pytest_addoption(parser):
    """Create options from console for tests env"""
    parser.addoption('--bn', action='store', default="chrome", help="Choose browser: chrome, remote_chrome or firefox") 

Ответы

Ответов пока нет.