2016-04-03 8 views
0

音声がミュートされているかどうかを確認するために何かを探しています。オーディオがミュートされているかどうか、Javaセレンで確認してください

ウェブドライバにはフラッシュビデオがあります。ビデオがミュート状態になる前に広告を表示するかどうかを知る必要があります。そんなことをすることは可能ですか?

+0

Flashは、Seleniumによって制御される層とは別の層を使用します。人間としては、オーディオがミュートされているかどうかをどのように知っていますか?アイコン(またはその他の目に見えるもの)の場合は、スクリーンショットを撮って確認してください。または、オペレーティングシステムのオーディオミキサーに接続して、音が流れていないかどうかを確認することもできます(しかし、他のアプリも音を出す可能性があるので、あまり信頼できません)。サウンドチェック(一般的にFlashテスト)はSeleniumの機能を超えています。 – skandigraun

+0

私はそれが特定のタブからのオーディオがあるかどうかを知る方法であるべきだと思います –

+0

どのプレイヤーがページを使用していますか? @FlorentB。 –

答えて

0

セレン自体は役に立ちませんが、Javaは役に立ちます。 Java AudioSystemクラスを見てください。

Port lineIn; 
FloatControl volCtrl; 
try { 
    Mixer mixer = AudioSystem.getMixer(null); 
    lineIn = (Port)mixer.getLine(Port.Info.LINE_IN); 
    lineIn.open(); 
    volCtrl = (FloatControl) lineIn.getControl(

    FloatControl.Type.VOLUME); 

    // Assuming getControl call succeeds, 
    // we now have our LINE_IN VOLUME control. 
} catch (Exception e) { 
    System.out.println("Failed trying to find LINE_IN" 
    + " VOLUME control: exception = " + e); 
} 

here(ミュートで検索)を参照してください。

0

あなたのHTMLは、ページがFlashではなくHTML5ビデオを再生しており、プレーヤーがVIDEOJS(http://videojs.com)であることを示しています。 彼らのドキュメントには、APIは、HTML5に準拠していることを示しているので、これはあなたのケースで動作するはずです:あなたが任意のコードを実行する前に、あるかどう親フレームにコンテキストを設定する必要があります

boolean isMuted = ((JavascriptExecutor)driver).executeScript(
    "return window.videojs('vjs_video_3_html5_api').muted()"); 

注意。

+0

ありがとうございますが、動画の前に広告を確認しようとしています。それは働いていない! このようなタブにサウンドがあるかどうかを確認する方法はありませんか?またはブラウザで!?!? –

+0

Seleniumでは、コンポーネントがJavascript APIを提供している限り、コンポーネントがミュートされているかどうかを確認できます。これはVIDEOJSビデオでうまくいきます。あなたのケースではない場合、あなたの追加はおそらく別のコンポーネントにあります。 –

関連する問題