3

いくつかのオーディオ/ビデオ テストを自動化するために、ChromeDriver で Selenium を試しています。しかし、アプリで Chrome ブラウザを起動すると、質問が表示されます http:... カメラとマイクを使用したい 許可 拒否 オプション [許可] をクリックして、サイトのスクリプトを続行します。しかし、許可を選択しないと先に進めません。残念ながら、Chrome は一種の非 DOM 形式でこの質問をポップアップ表示するため、driver.findElement を明白な方法で実行できず、「許可」オプションの「クリック」で応答できません。あなたの誰かがこの状況に遭遇したことがありますか?これに対処する最善の方法は何ですか?

乾杯 !-- ブライアン

4

2 に答える 2

1

この回答(印刷ダイアログ)またはこの回答(「実行...」ダイアログ)を参照してください。

ダイアログは異なりますが、理由 (要するに、WebDriver はこれらのダイアログを処理できません) と考えられる解決策はまったく同じです。

  • このRobotクラスを使用すると、プログラムでキーボード上の任意のものを「押す」(または盲目的にクリックする) ことができるため、たとえば、Enterまたはを押すことでダイアログを取り除くことができEscます。ただし、上で説明したように、高度な対話は OS / 言語 / プリンターに依存します。

    // press Escape programatically - the print dialog must have focus, obviously
    Robot r = new Robot();
    r.keyPress(KeyEvent.VK_ESCAPE);
    r.keyRelease(KeyEvent.VK_ESCAPE);
    

    もちろん、このクラスを介して何でも入力できます。

  • AutoIt . これは、システム レベルの自動化を処理するのに役立つ Windows プログラムです。上記と同じ依存関係。

(私の知る限り)ダイアログが表示されたかどうかを実際に確認することはできないため、カメラのないコンピューターで実行した場合に発生する可能性のあるエラーを検出できないことに注意してください...

于 2012-07-20T13:32:32.473 に答える
1

ChromeDriverを使用している場合は、次を使用して「ネイティブ」ポップアップにアクセスできます

Alert popup = webDriver.switchTo().alert();
// here you can examine the text within the alert using popup.getText();
popup.accept();
于 2012-09-13T16:15:34.133 に答える