Hallo Ich habe eine App, die eine Webansicht öffnet, die eine Seite mit Video-Tag innerhalb öffnet.
Ich möchte einen UI-Test schreiben, um zu bestätigen, ob das Video korrekt wiedergegeben wird oder nicht.
Ist es möglich?iOS - UI Test überprüfen, ob Video abgespielt wird oder nicht
Antwort
Ich bin mir nicht ganz sicher, was Sie mit "richtig gespielt" meinen. Sie können testen, ob ein Video abgespielt wird, wenn Sie die Wiedergabetaste drücken. Aber du kannst nicht wirklich testen, ob es das richtige Video ist.
Das Drücken der Wiedergabetaste eines über Video-Tag eingebetteten Videos ist etwas knifflig. Ich kann mir zwei Ansätze vorstellen:
1. Versuchen Sie, den Test aufzuzeichnen.
Abhängig von der Struktur Ihres HTML kann der von Xcode erstellte Code ziemlich hässlich sein (Noch schlimmer: Manchmal kann Xcode nicht einmal das Drücken der Wiedergabetaste aufzeichnen).
nahm ich einen UITest für eine Webansicht, die diese URL geladen: https://www.w3schools.com/html/html5_video.asp
Das ist, was ich habe:
func testVideo() {
let app = XCUIApplication()
app.launch()
app.children(matching: .window).element(boundBy: 0).children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other)["HTML5 Video"].children(matching: .other).element(boundBy: 5).buttons["Start Playback"].tap()
sleep(2)
XCTAssert(app.buttons["Done"].exists)
}
Yuck! Wirklich hässlich, aber es funktioniert. Der Test startet das Video und testet, ob die "Fertig" -Schaltfläche vorhanden ist, was bei der Wiedergabe der Videos der Fall ist. (Ich hatte die sleep
Anweisung hinzufügen, um die Behauptung Arbeit zu machen)
Wenn der Test der Aufnahme funktioniert nicht, es gibt eine andere Lösung, die Sie verwenden können:
2. Verwenden Sie einen Wasserhahn auf eine Koordinate zu starten das Video:
func testVideo() {
let app = XCUIApplication()
app.launch()
sleep(2)
app.windows.element(boundBy: 0).coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.8)).tap()
sleep(2)
XCTAssert(app.buttons["Done"].exists)
}
Hier gelangen Sie das Fenster der App und tippen Sie auf eine Koordinate, die als 50% der Breite und 80% der Höhe definiert ist. (Sehen Sie sich den Screenshot an, um zu sehen, dass das in meinem Fall die Position der Schaltfläche ist). Natürlich müssen Sie Ihre eigene Koordinate definieren, die in Ihrem Fall funktioniert.
Diese Lösung funktioniert, aber es ist wirklich wackelig. Wenn sich die Position des Videos auf der Seite ändert, wird der Test unterbrochen. Auch die Koordinaten ändern sich für verschiedene Geräte. Und Sie müssen mit den sleep
Anweisungen experimentieren, damit es funktioniert. Daher sollte es wahrscheinlich nur als letztes Mittel verwendet werden.
Prüfung, ob ein Video tatsächlich gespielt wird:
Wenn der Test das Video startet die App in Vollbild-Modus geht und spielt das Video des Media-Player verwenden. Um zu testen, ob ein Video tatsächlich abgespielt wird, können Sie auf den Positionsregler zugreifen und dessen value
überprüfen. Der Wert des Schiebers ist eine Zeichenkette (zB „12%), so zu prüfen, ob es nicht noch bei 0% ist, dass Sie es in einen numerischen Wert umgewandelt haben und behaupten, dass dieser Wert größer als 0:
func testVideo() {
let app = XCUIApplication()
app.launch()
sleep(2)
app.windows.element(boundBy: 0).coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.8)).tap()
sleep(2)
let currentPositionSlider = app.sliders.element(boundBy: 0)
let percentageValueString = (currentPositionSlider.value as! String).replacingOccurrences(of: "%", with: "")
let percentangeValue = Int(percentageValueString) ?? 0
XCTAssert(percentangeValue > 0)
}
- 1. iOS: AVPlayer spielen wird manchmal nicht abgespielt
- 2. Video nicht abgespielt - Xamarin
- 3. Video wird überhaupt nicht abgespielt. [JavaScript]
- 4. ändert Video in HTML5-Video abgespielt wird
- 5. Überprüfen, ob Audio mit Selenium korrekt abgespielt wird
- 6. Können wir nachverfolgen, ob ein Video in Jquery abgespielt wird oder beendet wird?
- 7. Erkennen, ob ein Video auf einer Webseite mit Jquery oder/und Javascript abgespielt wird?
- 8. In Unity VideoPlayer wird kein Video abgespielt
- 9. Video steuert nur wenn Video abgespielt wird (html5)
- 10. Wie wird Video in der QML abgespielt?
- 11. iOS UI Test Datepicker
- 12. Ein eingebettetes YouTube-Video wird automatisch abgespielt
- 13. Wie wird Video in Unity 2D abgespielt?
- 14. iOS - UI-Test Bild in TableViewCell finden
- 15. YouTube-eingebettetes Video wird nicht abgespielt/erscheint gesperrt
- 16. iOS UI-Test willDisplayCell funktioniert nicht richtig
- 17. Überprüfen Sie, ob Video-, Bild-Datei vorhanden ist iOS
- 18. MP4 wird abgespielt, wenn direkt zugegriffen wird, aber nicht, wenn PHP gelesen wird, auf iOS
- 19. Ein nicht verwandtes Div ausblenden, wenn Video abgespielt wird
- 20. Wie kann ich Youtube-Video ohne UIWebView wiedergeben oder Video-Player erkennen, wenn Youtube-Video mit webview abgespielt wird?
- 21. Video kann nicht in QML abgespielt werden
- 22. Überprüfen Sie, ob Android-Gerät 4K-Video unterstützt?
- 23. Überprüfen Sie, ob ein Video in einem Iframe abgespielt werden kann.
- 24. Wie erkennt man, ob VideoView Video oder Buffering spielt?
- 25. iOS: Erlaubt dem Benutzer zu wählen, ob Audio im Hintergrund abgespielt werden soll oder nicht
- 26. IOS-UI-Tests ohne Simulator oder Gerät
- 27. Android: Video kann nicht abgespielt werden
- 28. FancyBox mit Video auf iPad-Video abgespielt wird, ist aber schwarz ??? - (erscheint nicht)
- 29. Wie Sie überprüfen, ob Ihr Tube-Video mit eingebettetem HTML existiert oder nicht
- 30. Überprüfen Sie, ob das YouTube-Video live oder hochgeladen ist
Dank für die Hilfe! Eigentlich habe ich kein Problem, zum Schritt zu gelangen, um das Video abzuspielen, aber nach dem Video wird es im Vollbildmodus abgespielt und auf einem Media Player abgespielt, der außerhalb des Anwendungsbereichs liegt (denke ich?) und ich kann ' t bestätigen Sie nichts von dort.Irgendeine Idee, wie man überprüft, ob der Mediaplayer den richtigen Wert nicht immer 00:00 hat? –
Sie können auf den Schieberegler für die aktuelle Position des Media Players zugreifen und prüfen, ob der Wert größer als 0 ist. Bitte lesen Sie meine bearbeitete Antwort. – joern
Das ist großartig! Werde das überprüfen und Sie später darüber informieren! Vielen Dank Alter! –