t.me/atinfo_chat Telegram группа по автоматизации тестирования

Использование веб-камеры в seleinium автотестах

webrtc
selenium
webdriver
java
Теги: #<Tag:0x00007f21d407c8d8> #<Tag:0x00007f21d407c798> #<Tag:0x00007f21d407c658> #<Tag:0x00007f21d407c518>

(Elvis Presley ) #1

Всем привет! Есть приложение, которое идентифицирует человека по лицу, то есть лицо снимают на веб камеру, на сервер отправляются фотографии с этого видео, вобщем как то так. Таких проверок несколько в одном тесте.
Немного погуглил и нашёл, что можно сделать что то типа такого:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--use-fake-device-for-media-stream")
chrome_options.add_argument("--use-file-for-fake-video-capture=./video1.y4m")
chrome_options.add_experimental_option("prefs", {
    "profile.default_content_setting_values.media_stream_camera": 1
})

То есть передать параметры опций браузера фэйковую веб камеру и видео, вместо съёмки живого человека.
Вопрос: в тесте мне надо как то подставлять разные видео, взависимости от того, что попросит приложение. Можно ли как то во время теста подставлять разные видео? Например если он просит лицо 1, мне нужно подставить файл video1.y4m, если нужно лицо5, то нужно передавать video5.y4m и это всегда генерится рандомно. Сорри если объяснил немного сумбурно. Может кто сталкивался с такой проблемой?


(Vasiliy Rakshin) #2

Вы можете тут указать какое-то условное имя файла.
А во время теста, просто на уровне системы этот файл заменять нужным файлом, типа перезаписывать (но оставлять имя файла неизменным, чтобы он подхватывался браузером). Получили имя лица - скопировали в этот файл нужный файл видео для этого лица. Т.е. действия уже не селениумом, а просто работа с файлами Джавой.