Камера не работает в 2 браузерах Chrome, открытых в paralel из проекта selenium

#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