Я работал над тестовым набором, использующим pytest и селеновый хромедривер, для автоматизации сайта, который использует веб-камеру пользователя, чтобы делать фотографии и записывать видео во время использования сайта (с их разрешения!).
Конечная цель - использовать Docker-Compose, используя официальный контейнер селена / хрома-хрома, который, в свою очередь, запускает мои тесты для док-контейнера SUT.
При локальном запуске теста (т. Е. При использовании «локального» пути выполнения в приведенном ниже коде) у меня не возникает проблем с использованием флагов --use-fake-device-for-media-stream
и --use-fake-ui-for-media-stream
.
Однако, когда я пытаюсь выполнить тот же самый тест через мой удаленный сеанс WebDriver, SUT сообщает, что браузер не поддерживает API веб-камеры и что браузер должен быть обновлен.
def browser(request):
browser_args = Options()
browser_args.add_argument("--use-fake-device-for-media-stream")
browser_args.add_argument("--use-fake-ui-for-media-stream")
browser = request.config.getoption("--browser")
if browser == "local":
browser = webdriver.Chrome(options=browser_args)
elif browser == "remote":
browser_args.add_argument("--headless")
browser = webdriver.Remote(
command_executor=f"http://{request.config.getoption('--selenium-server')}:4444/wd/hub", options=browser_args)
Насколько я знаю, одинаковые аргументы должны работать как для локального, так и для удаленного веб-драйвера, но я впервые использую удаленный веб-драйвер, поэтому я не уверен. Буду признателен за любую помощь или руководство.