javascript - How do i allow Chrome to use my microphone programatically? -


i trying run tests made webdriverjs , chromedriver need microphone permissions.

this popup shows up:

popup image

i have tried:

    chromedriver.start(['--disable-popup-blocking']);     driver = new webdriver.builder()     .withcapabilities(webdriver.capabilities.chrome())     .build(); 

but didn't work.

i tried

    driver.wait(until.alertispresent(), config.timeout, 'alert did not show up');     driver.switchto().alert().accept(); 

it did not work either! guess not ordinary alert.

useful links:

chrome startup arguments list

chrome options java , ruby

chromedriver github

how give them permissions programatically?

is there flag or other way around this?

a fresh profile loaded each time run selenium, hence changes make preferences , website permissions not preserved between sessions. amend need tell selenium profile load.

step 1. find chrome preferences file: www.forensicswiki.org/wiki/google_chrome#configuration

step 2. copy folder default somewhere. assume copied /some/path/allow-mic/default.

alternative step 3 (this easier): before copying default visit localhost:1337 chrome , set mic allow.

step 3. edit allow-mic/default/preferences, find tags "profile", "content_settings" , "exceptions" within each other , add

"media_stream_mic":{"http://localhost:1337,*":                                           {"last_used":1470931206,                                            "setting":1} }, 

to "exceptions". should end like:

... "profile":{      ...      "content_settings": {          ...          "exceptions": {              ...              "media_stream_mic":{"http://localhost:1337,*":                                       {"last_used":1470931206,                                        "setting":1} },              ...          },     }, }, ... 

step 4: configure selenium use edited preferences:

var chromedriver = require('chromedriver'); var webdriver = require('selenium-webdriver'); var chrome = require('selenium-webdriver/chrome');  var opts = new chrome.options();                    opts.addarguments("user-data-dir=/some/path/allow-camera");  var driver = new chrome.driver(opts); 

you can check correct set of preferences (profile path) in use opening chrome://version/.


Comments