2017-02-28 3 views
1

ich ziemlich neu bin zu Front-End Land, so mit mir tragen ... Ich habe eine HTML-Seite mit einem eingebetteten Video über einen HTML-Video-Tag wie folgt:Winkelmesser Test für einen Video-Tag

<video id=... class=...> 
    <source src=... type="video/mp4"> 
</video> 

Dieses Video wird an den Anfang zurückgesetzt, wenn es fertig ist. Jetzt möchte ich das mit dem Winkelmesser testen. Momentan kann ich das Element bekommen, aber ich weiß nicht, wie man das Video spielt/pausiert, wie weit das Video ist, usw. von einem Winkelmesser-Test. Ich kann das Element durch element(by.id('<id>')) bekommen und ich kann das normale Zeug wie sehen, wenn es sichtbar ist, klicken Sie darauf, etc., aber habe keine Ahnung, wie man an den Eingeweiden des Elements bekommen.

UPDATE:

Das Problem dabei ist, dass die Kontrollen durch den Browser als mein Video-Tag versehen sind, gibt das Attribut ‚Kontrollen‘. Das bedeutet, dass die Play/Pause-Taste nicht Teil des DOM ist und daher kann ich nicht dazu kommen. Außerdem sendet der Browser ein Ereignis, um zu sagen, dass das Video beendet wurde. Damit ich testen kann, ob das Video nach dem Ende des Videos zurückgesetzt wird, müsste ich die Wiedergabetaste drücken, die nicht als DOM-Objekt aufgeführt ist. Gibt es eine Möglichkeit, ein "beendetes" Ereignis auszulösen, ohne das Video abzuspielen? Oder kann ich es auslösen, indem ich das currentTime-Attribut irgendwie auf das duration-Attribut setze?

Antwort

0

Um das Video zu spielen, werden Sie die 'Play' -Taste aus dem 'DOM' eher als den Video-Tag von id sagt Element auswählen müssen (by.css ('< .class- die Play-Taste>')) und Wenn es im Callback von isPresent() vorhanden ist, fügen Sie das click -Ereignis hinzu. Um eine vollständige Antwort zu geben, ist es gut, einen Schnappschuss des "DOM" zu dem Zeitpunkt zu haben, zu dem das Video abgespielt wird.

+0

Gibt es eine Möglichkeit für mich, eine Momentaufnahme des ausgedruckten "DOM" zu erstellen? Da die Play - Taste innerhalb des Video - Tags ist und ich nicht sehen kann, um welche Klasse es sich handelt, bin ich nicht sicher, wie ich 'element (by.css ('') nennen soll)' – user972276

+0

Ich habe 'element (by .css ('btn btn-default')) ', aber es wurde nichts gefunden – user972276

1

Sie können Play/Pause-Steuerelemente nicht über Selectors auswählen, stattdessen können Sie eigene Buttons hinzufügen und HTML-Audio-/Videoereignisse hinzufügen. So können Sie diese Schaltfläche automatisieren.

button.onclick = function() { 
    (videoSelector).play/pause(); 
} 
+0

Danke @Hawari Abdulla –

0

Die beste Option i zur Zeit gefunden Ebene JavaScript ist mit der Ausführung pausiert, spielen, usw., den folgenden Code entweder in einem Seitenobjekt oder eine Spezifikation zu automatisieren:

browser.executeScript(function() { 
     var video = document.getElementById('video'); 
     video.play(); 
    }); 
Verwandte Themen