Сеанс Chrome Remote Webdriver, по-видимому, игнорирует --use-fake-device-for-media-stream - PullRequest
0 голосов
/ 14 июня 2019

Я работал над тестовым набором, использующим 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)

Насколько я знаю, одинаковые аргументы должны работать как для локального, так и для удаленного веб-драйвера, но я впервые использую удаленный веб-драйвер, поэтому я не уверен. Буду признателен за любую помощь или руководство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...