Как задать два размера окна браузера (Автоматизация тестирования, Selenium, Python)
У меня в одном проекте идет два набора тестов для сайта - обычный веб с компа и его адаптивная верстка. Как грамотно разделить функцию 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")
Источник: Stack Overflow на русском