Автоматизация видео плеера.

Ранее, чтобы посмотреть видео в интернете нужно было ипользовать различные плагины. При этом не существовало чего-то универсального. Однако, после выхода HTML 5 ситуация изменилась. Появился тег < video >, с помощью которого можно было добавлять легко видео на сайт. Соответсвенно, тестировать его тоже нужно. Для этого будем использовать класс JavaScriptExecutor. Напишем простой тест и помотрим, как это работает:

@Test
public void testHTML5VideoPlayer() throws Exception {
    File scrFile = null;

    //Get the HTML5 Video Element
    WebElement videoPlayer = driver.findElement(By.id("vplayer"));

    //We will need a JavaScript Executor for interacting
    //with Video Element's
    //methods and properties for automation
    JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;

    //Get the Source of Video that will be played in Video Player
    String source = (String) jsExecutor.executeScript("return arguments[0].currentSrc;", videoPlayer);

    //Get the Duration of Video
    long duration = (Long) jsExecutor.executeScript("return arguments[0].duration", videoPlayer);
    System.out.println(duration);

    //Verify Correct Video is loaded and duration
    assertEquals("http://html5demos.com/assets/dizzy.mp4", source);
    assertEquals(25, duration);

    //Play the Video
    jsExecutor.executeScript("return arguments[0].play()", videoPlayer);
    Thread.sleep(5000);

    //Pause the video
    jsExecutor.executeScript("arguments[0].pause()", videoPlayer);

    //Take a screen-shot for later verification
    scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(scrFile, new File("c:\\tmp\\pause_play.png"));
}