WebDriver高级应用实例(10)

  10.1控制HTML5语言实现的视频播放器

  目的:能够获取html5语言实现的视频播放器视频文件的地址、时长、控制进行播放暂停

  被测网页的网址:

  http://www.w3school.com.cn/tiy/t.asp?f=html5_video_all

  Java语言版本的API实例代码

package cn.html5;

import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;

public class TestHtml5VideoPlayer {
    WebDriver driver;
    String url = "http://www.w3school.com.cn/tiy/t.asp?f=html5_video_all";
  @Test
  public void testVideoPlayer() throws InterruptedException, IOException {
      //定义页面截图对象
      File captureScreenFile = null;
      //打印页面源码
      System.out.println(driver.getPageSource());
     //进入视频所在的frame
      driver.switchTo().frame("i");
      //获取页面video对象
      WebElement videoPlayer = driver.findElement(By.tagName("video"));
      //声明javascriptExecutor对象
      JavascriptExecutor javascriptExecutor = (JavascriptExecutor)driver;
      //获取视频文件的网络地址
      String videoSrc = (String) javascriptExecutor.executeScript("return arguments[0].currentSrc;",videoPlayer);
      //输出视频存储地址
      System.out.println(videoSrc);
      //断言判断视频存储地址是否正确
      Assert.assertEquals("http://www.w3school.com.cn/i/movie.ogg",videoSrc);
      //duration获取视频的时长
      Double videoDuration = (Double)javascriptExecutor.executeScript("return arguments[0].duration;", videoPlayer);
      //输出视频时长
      System.out.println(videoDuration.intValue());
      //等待5秒
      Thread.sleep(5000);
      //执行javascript,通过内部的函数play()来播放影片
      javascriptExecutor.executeScript("return arguments[0].play();", videoPlayer);
      Thread.sleep(2000);
      //执行javascript语句,通过内部的函数pause()来暂停影片
      javascriptExecutor.executeScript("return arguments[0].pause();", videoPlayer);
      Thread.sleep(3000);
      //对暂停的视频进行截图
      captureScreenFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
      //将截图的图片命名并保存在E盘上
      FileUtils.copyFile(captureScreenFile, new File("e:\\videoPaly_pause.jpg"));
  }
  @BeforeMethod
  public void beforeMethod() {
      System.setProperty("webdriver.chrome.driver", "D:\\WebDriver\\chromedriver_win32\\chromedriver.exe");
      driver = new ChromeDriver();
      driver.manage().window().maximize();
      driver.get(url);
  }

  @AfterMethod
  public void afterMethod() {
      driver.quit();
  }

}

代码解释:

 控制视频播放器的原理均需使用JavaScript语句调用视频播放器内部的属性和接口来实现。

原文地址:https://www.cnblogs.com/z-zzz/p/10552256.html

时间: 2024-10-24 16:36:57

WebDriver高级应用实例(10)的相关文章

WebDriver高级应用实例(4)

4.1操作web页面的滚动条 被测网页的网址: http://v.sogou.com Java语言版本的API实例代码 import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import javax.swing.event.TreeWillExpandListener; import org.openqa.selenium.By; import org.openqa.selenium.Jav

Selenium WebDriver高级用法

Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplorerDriver.ChromeDriver.OperaDriver,除了 InternetExplorerDriver只能在Windows平台运行,其他WebDriver均能跨平台. 如果追求运行速度,HtmlUnitDriver是首选,但是它没有运行界面,不能实时看到运行效果.如果想看到运行效果

Oracle 10g高级复制实例(多主体复制)(转载)

Oracle 10g高级复制实例(多主体复制) 前言: 配置了三次,两次都是单向.最后一次终于是双向的了.也算一点有点成功的喜悦.喜悦?喜悦确实谈不上.这么简单的东西弄了这么久觉得惭愧.网络上的资料一大堆.不过他们写的好象都有些随意.有的时候一点点错误可以使你只有重来.我现在重新写一次.只提供给初学者.配置的高手的就不要开腔了.因为实在不好意思拿出来见人. 信息: 主体定义数据库:testdb.geong.com(弄清楚别弄错了.) 主体数据库:backdb.geong.com 操作系统:  x

HTML高级教程(10)——HTML 事件

HTML 4.0 的新特性之一是使 HTML 事件触发浏览器中的行为,比方说当用户点击一个 HTML 元素时启动一段 JavaScript.以下就是可插入 HTML 标签以定义事件行为的一系列属性. 如果您需要学习如何使用这些事件进行编程,那么你应该学习我们的 JavaScript 教程 和 DHTML 教程. 窗口事件 (Window Events) 仅在 body 和 frameset 元素中有效. 属性 值 描述 onload 脚本 当文档载入时执行脚本 onunload 脚本 当文档卸载

webdriver高级应用- 启动带有用户配置信息的firefox浏览器窗口

由于WebDriver启动FireFox浏览器时会启用全新的FireFox浏览器窗口,导致当前机器的FireFox浏览器已经配置的信息在测试中均无法生效,例如已经安装的浏览器插件.个人收藏夹等.为了解决此问题,自动化测试脚本中需要使用指定的配置信息来启动FireFox浏览器窗口. 1.生成用户自定义的FireFox浏览器配置文件: 在CMD中使用cd命令进入firefox.exe文件所在目录(比如:C:\Program Files\Mozilla Firefox),并输入firefox.exe

webdriver高级应用- 右键另存为下载文件

1.要使用右键另存,需要先按照第三方工具AutoIt: 链接: https://pan.baidu.com/s/12aBBhOOTmyQpH9hukt0XGA 密码: fcdk 2.创建一个名为loadFile.au3的AutoItScript编辑器,内容如下: 新建一个名为loadFile.au3的AutoItScript编辑器,文件具体内容如下: ;ControlFocus("title","text",controlID) ;表示将焦点切换到标题为title窗

2015/12/13 --高级javascript实例和部分javascript对象实例

<html> <head> <script type = "text/javascript"> //替换字符串中的字符--replace()方法 var str = "Do you love me?"; document.write(str.replace (/me/who)); //查找字符串中指定的字符,若找到,返回该字符.---match()方法 var str = "hello kitty"; docu

Selenium WebDriver java 简单实例

开发环境 JDK 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html Eclipse: 下载地址:http://www.eclipse.org/downloads/ Selenium jar包 (这里用的是:selenium-Java-2.45.0.zip ,selenium-server-standalone-2.45.0.jar) 下载地址:http://code.google.com/p/sele

junit基础篇、中级篇、高级篇实例-代码

学习文章: http://blog.csdn.net/andycpp/article/details/1327147 http://wenku.baidu.com/link?url=C27gDEj0l-AyPuyUOOYJaezxGF-U-mozQbjlA-R9apKXdw8h-GV3VoPzS4P4WADISon7615JCLfSpMjtuiqIVcBWJ0o7icgKk_2Qi2jF0yq 实例代码目录结构: Calculator.java: 1 public class Calculato