2016-04-03 6 views
0

Ich versuche, alles zu finden, um mir zu überprüfen, ob Audio stummgeschaltet ist oder nicht.Überprüfen Sie, ob Audio stummgeschaltet oder nicht in Java Selen

Es wird ein Flash-Video im Web-Treiber und ich muss wissen, ob die Werbung vor dem Video stummgeschaltet ist oder nicht! Ist es möglich, so etwas zu tun?

+0

Flash verwendet eine separate Schicht als die von Selen kontrollierte Schicht. Wie können Sie als Mensch wissen, ob der Ton stummgeschaltet ist? Wenn es ein Symbol (oder eine andere sichtbare Sache) ist, mache einen Screenshot und überprüfe es. Oder Sie könnten versuchen, sich mit dem Audiomixer des Betriebssystems zu verbinden, um zu prüfen, ob es einen Ton gibt (aber es gibt vielleicht auch andere Anwendungen, die Ton erzeugen, also ist es ziemlich unzuverlässig, denke ich). Soundchecks (und allgemein Flash-Tests) sind jenseits der Fähigkeiten von Selenium. – skandigraun

+0

Ich denke, es sollte eine Möglichkeit sein, zu wissen, ob Audio von bestimmten Registerkarte –

+0

ist Welcher Player wird die Seite verwendet? –

Antwort

0

Selen selbst wird nicht helfen, aber Java tut. Werfen Sie einen Blick auf die Klasse 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); 
} 

Eine Diskussion finden Sie unter here (stummschalten).

0

Ihr HTML zeigt an, dass auf der Seite ein HTML5-Video und nicht Flash wiedergegeben wird und dass der Player VIDEOJS ist (http://videojs.com). Die Dokumentation zeigt an, dass die API HTML5-kompatibel ist, so sollte dies in Ihrem Fall:

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

Beachten Sie, dass Sie den Kontext des übergeordneten Rahmens festlegen müssen, ob es eine ist, bevor Sie diesen Code ausführen.

+0

danke, aber ich versuche die Anzeige vor dem Video zu überprüfen. also funktioniert es nicht! gibt es keine Möglichkeit zu überprüfen, ob ein Ton in einer solchen Registerkarte ist? oder im Browser!?!? –

+0

Mit Selenium können Sie überprüfen, ob eine Komponente stummgeschaltet ist, solange die Komponente eine JavaScript-API bereitstellt. Dies funktioniert gut für ein VIDEOJS-Video. Wenn dies in Ihrem Fall nicht der Fall ist, befindet sich Ihr Add wahrscheinlich in einer anderen Komponente. –

Verwandte Themen