8
votes

I'm not able to click on Allow button of access camera authentication pop up.

Here is the look of pop up.

here

2
What causes the pop up show? what platform are you on? what kind of application? what have you tried? Please give us some more context so that we have a better idea of the problem. - Breaks Software
@BreaksSoftware The site i'm working on,needs my camera and mic. So, i want to allow this authentication pop up. i have tried with alert accept method or via switching window. But it is a authentication browser pop up.So, i don't think so it will help me out. - daisy
@DebanjanB Yes, it is simillar to that,Only thing I need to Allow the pop up instead of Block. - daisy
@DebanjanB I tried with the code: ChromeOptions options = new ChromeOptions(); options.addArguments("allow-file-access-from-files"); options.addArguments("use-fake-device-for-media-stream"); options.addArguments("use-fake-ui-for-media-stream"); WebDriver driver = new ChromeDriver(options); But it is opening new window and that allow camera method getting passed and failed to the next method. - daisy

2 Answers

13
votes

To Allow or Block the notification of Microphone, Camera, GeoLocation, Notification access using Selenium you have to use ChromeOptions Class as follows :

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

opt = Options()
opt.add_argument("--disable-infobars")
opt.add_argument("start-maximized")
opt.add_argument("--disable-extensions")
# Pass the argument 1 to allow and 2 to block
opt.add_experimental_option("prefs", { \
    "profile.default_content_setting_values.media_stream_mic": 1, 
    "profile.default_content_setting_values.media_stream_camera": 1,
    "profile.default_content_setting_values.geolocation": 1, 
    "profile.default_content_setting_values.notifications": 1 
  })

driver = webdriver.Chrome(chrome_options=opt, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get('https://www.google.co.in')
print("Page Title is : %s" %driver.title)
driver.quit()
2
votes

This java code helped me

public WebDriver initWebDriver() {
     ChromeOptions options = new ChromeOptions();
     options.addArguments("use-fake-device-for-media-stream");
     options.addArguments("use-fake-ui-for-media-stream");
     prefs = new HashMap<String, Object>();
     prefs.put("profile.default_content_setting_values.media_stream_mic", 1);
     prefs.put("profile.default_content_setting_values.media_stream_camera", 1);
     prefs.put("profile.default_content_setting_values.geolocation", 1);
     prefs.put("profile.default_content_setting_values.notifications", 1);
     options.setExperimentalOption("prefs", prefs);
     System.setProperty(CHROME_DRIVER, DRIVER_PATH);
     return new ChromeDriver(options);
 }