#selenium #google-chrome #selenium-chromedriver #webcam
#селен #google-chrome #selenium-chromedriver #Вебкам
Вопрос:
Вот в чем дело. Создайте приложение, которое открывает браузер Google, переходит на какую-либо страницу и сохраняет браузер открытым. Если вы запустите это приложение 2 раза, ожидаемое поведение заключается в том, что оно откроет 2 браузера Chrome (что оно и делает).
Затем я вручную захожу на один из сайтов и нажимаю настройки flash, чтобы он загрузил веб-камеру, и она заработала. Когда я захожу во второй браузер и нажимаю на настройки вспышки, камера больше не загружается. Если я попытаюсь использовать дополнительную камеру, это сработает. Но в противном случае, если я попытаюсь использовать первый, он завершится неудачей и не загрузит его. (p.s. это разделитель веб-камеры, я знаю, что USB-камеру можно использовать только один раз).
P.S. Тот же код отлично работал в Chrome с версии 46 (когда я создал этот код) до версии 72. Но теперь, с выпуском v53, она больше не работает.
P.S. Ниже приведены параметры, которые я передаю в браузер Chrome:
// for each "whichSite", I have a preset saved chrome profile folder.
if (Directory.Exists(profileDir))
{
opts.AddArguments("--user-data-dir=" Path.Combine(Program.PROFILE_CHROME, whichSite));
opts.AddArguments("--parent-profile=" Path.Combine(Program.PROFILE_CHROME, whichSite));
}
opts.AddArguments("--window-size=1280, 720");
opts.AddArguments("--allow-outdated-plugins");
opts.AddArguments("--allow-running-insecure-content");
opts.AddArguments("--always-authorize-plugins");
if (versionInfo.ProductMajorPart < 65)
opts.AddArguments("--disable-infobars");
else
opts.AddExcludedArgument("enable-automation"); // this will show the debug extensions thing
opts.AddArguments("--disable-popup-blocking");
opts.AddArguments("--disable-translate");
opts.AddArguments("--no-default-browser-check");
opts.AddArguments("--new-window");
opts.AddArguments("--no-experiments");
opts.AddArguments("--no-first-run");
opts.AddArguments("--disable-background-mode");
opts.AddArguments("--disable-save-password-bubble");
opts.AddArguments("--disable-session-crashed-bubble");
opts.AddArguments("--disable-suggestions-service");
opts.AddArguments("--disable-sync");
opts.AddArguments("--disable-spelling-auto-correct");
opts.AddArguments("--no-default-browser-check");
opts.AddArguments("--no-network-profile-warning");
opts.AddArguments("--homepage=google.com");
opts.AddArguments("--disable-notifications");
opts.AddArguments("--disable-new-profile-management");
opts.AddArguments("--disable-single-click-autofill");
opts.AddArguments("--isolate-extensions");
opts.AddArguments("--disable-settings-window");
Комментарии:
1. Я обнаружил, что причиной проблемы может быть «—user-data-dir». Вы можете повторить это поведение, если вручную откроете браузер Chrome, а затем откроете дополнительный, указав параметр «—user-data-dir» с указанием пути к отдельной копии данных вашего профиля Chrome. Если вы выбрали дополнительную доступную камеру, она будет работать. Но если вы выбрали камеру, которая уже была выбрана в первом открытом браузере, она больше не будет работать.
2. Сообщается об ошибке по этому поводу, bugs.chromium.org/p/chromium/issues/detail?id=950984