16

現在、webdriverjs と chromedriver で作成されたいくつかのテストを実行しようとしていますが、マイクのアクセス許可が必要です。

これは表示されるポップアップです:

ポップアップ画像

私が試してみました:

    chromedriver.start(['--disable-popup-blocking']);
    driver = new Webdriver.Builder()
    .withCapabilities(Webdriver.Capabilities.chrome())
    .build();

しかし、うまくいきませんでした。

私も試しました

    driver.wait(Until.alertIsPresent(), config.TIMEOUT, 'Alert did not show up');
    driver.switchTo().alert().accept();

それもうまくいきませんでした!これは通常のアラートではないと思います。

便利なリンク:

Chrome 起動引数リスト

Java と Ruby の Chrome オプション

Chrome ドライバーの github

プログラムでアクセス許可を与えるにはどうすればよいですか?

これを回避するフラグまたは他の方法はありますか?

4

6 に答える 6

7

Selenium を実行するたびに新しいプロファイルが読み込まれるため、設定や Web サイトのアクセス許可に加えた変更はセッション間で保持されません。これを修正するには、ロードするプロファイルをセレンに伝える必要があります。

ステップ 1. Chrome 設定ファイルを見つけます: www.forensicswiki.org/wiki/Google_Chrome#Configuration

Defaultステップ 2. フォルダをどこかにコピーします。にコピーされていると仮定し/some/path/allow-mic/Defaultます。

代替手順 3 (こちらの方が簡単です): コピーする前に Chrome にDefaultアクセスlocalhost:1337し、マイクを常に許可するように設定します。

ステップ 3. を編集allow-mic/Default/Preferencesし、タグを見つけて、"profile"相互"content_settings""exceptions"追加します

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

"exceptions"。次のような結果になるはずです。

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

ステップ 4:selenium編集した設定を使用するように構成します。

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);

を開いて、正しい設定セット (プロファイル パス) が使用されていることを確認できますchrome://version/

于 2016-08-11T16:34:07.120 に答える
3

chromedriver にhardware.audio_capture_allowed_urls設定を提供することで、オーディオ キャプチャの URL をホワイトリストに登録できます。

...
chrome_options = Options()
prefs = {"hardware.audio_capture_allowed_urls" : ["example.org"]}
chrome_options.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
于 2016-12-12T09:55:26.843 に答える