能够获取HTML5语言实现的视频播放器,视频文件的地址、时长,控制播放器进行播放或暂停播放等操作。

#encoding=utf-8
import unittest
from selenium import webdriver
import time class TestDemo(unittest.TestCase):
def setUp(self):
# 获取浏览器驱动实例
#self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")
#self.driver = webdriver.Firefox(executable_path = "e:\\geckodriver")
self.driver = webdriver.Chrome(executable_path = "E:\\chromedriver")
def test_HTML5VideoPlayer(self):
url = "http://www.w3school.com.cn/tiy/loadtext.asp?f=html5_video_simple"
# 访问HTML5语言实现的播放器网页
self.driver.get(url)
# 打印访问网页的页面源代码,供读者学习
print self.driver.page_source
# 获取页面中的video标签元素对象
videoPlayer = self.driver.find_element_by_tag_name("video")
# 使用JavaScript语句,通过播放器内部的
# currentSrc 属性获取视频文件的网络存储地址
videoSrc = self.driver.execute_script\
("return arguments[0].currentSrc;", videoPlayer)
# 打印网页中视频存放地址
print videoSrc
# 断言视频存放地址是否符合预期
self.assertEqual(videoSrc, "http://www.w3school.com.cn/i/movie.ogg")
# 使用JavaScript语句,通过播放器内部的
# duration属性获取视频文件的播放时长
videoDuration = self.driver.execute_script\
("return arguments[0].duration;", videoPlayer)
# 打印视频时长
print videoDuration
# 对获取到的视频时长取整,然后断言是否等于3秒
#self.assertEqual(int(videoDuration), 3)
# 使用JavaScript语句,通过调用播放器内部的
# play()方法来播放影片
self.driver.execute_script("return arguments[0].play();", videoPlayer)
time.sleep(2)
# 播放2秒后,使用JavaScript语句,通过调用播放器
# 内部的pause函数来暂停播放影片
self.driver.execute_script("return arguments[0].pause();", videoPlayer)
# 暂停3秒,以便人工确认视频是否已被暂停
time.sleep(3)
# 将暂停视频播放页面进行截屏,并保存为D盘的videoPlay_pause.jpg文件
self.driver.save_screenshot("e:\\videoPlay_pause.jpg")
self.driver.execute_script("return arguments[0].play();", videoPlayer)
time.sleep(3)
def tearDown(self):
# 退出浏览器
self.driver.quit() if __name__ == '__main__':
unittest.main()

说明:控制视频播放器的原理均需要使用JavaScript语句来调用视频播放器内部的属性和接口来完成我们想要做的操作。

webdriver高级应用- 测试HTML5语言实现的视频播放器的更多相关文章

  1. webdriver高级应用- 在HTML5的画布元素上进行绘画操作

    #encoding=utf-8 import unittest from selenium import webdriver import time class TestDemo(unittest.T ...

  2. HTML5 自制本地网页视频播放器

    HTML5初试:本地视频用网页打开啦半个广告都可以没有,看来暴风什么的快要淘汰了. 视频格式还是有要求的,看来要备一个转码器. 格式 IE Firefox Opera Chrome Safari Og ...

  3. HTML5视频(自定义视频播放器源码)

    video对象 兼容情况: safari浏览器不支持webm格式 Chrome浏览器支持webm格式 ie8以及以下不支持video标签 , ie9支持video标签 ,但是支持mp4格式的 Fire ...

  4. WebDriver高级应用实例(10)

    10.1控制HTML5语言实现的视频播放器 目的:能够获取html5语言实现的视频播放器视频文件的地址.时长.控制进行播放暂停 被测网页的网址: http://www.w3school.com.cn/ ...

  5. Selenium WebDriver高级用法

    Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplo ...

  6. 测试c语言函数调用性能因素之测试三

    函数调用:即调用函数调用被调用函数,调用函数压栈,被调用函数执行,调用函数出栈,调用函数继续执行的一个看似简单的过程,系统底层却做了大量操作. 操作: 1,               调用函数帧指针 ...

  7. JMeter ----与WebDriver安装与测试

    JMeter ----与WebDriver安装与测试 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 环境与参考 jvm版本: 1.8.0_65 j ...

  8. JMeter (1) —— JMeter与WebDriver安装与测试(101 Tutorial)

    JMeter (1) -- JMeter与WebDriver安装与测试(101 Tutorial) 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 ...

  9. Selenium WebDriver高级应用

    WebDriver高级应用 public class Demo4 { WebDriver driver; // @BeforeMethod:在每个测试方法开始运行前执行 @BeforeMethod p ...

随机推荐

  1. PHP变量、数据类型、字符串、运算符、条件语句、循环语句、数组、函数

    PHP 简介: php :是一门动态交互的计算机语言  静态交互 html  css  js 但凡是动态交互的 都需要服务器. php都是以.php结尾的文件 Html文件里不能写php代码,但是ph ...

  2. css3的过渡、动画、2D、3D效果

    浏览器的内核: 谷歌的内核是:webkit 火狐的内核是:gecko Ie的内核是:trident 欧鹏的内核是:presto 国内浏览器的内核:webkit css3针对同一样式在不同的浏览器的兼容 ...

  3. Kendo 单页面应用(一)概述

    Kendo 单页面应用(一)概述 Kendo 单页面应用(Single-Page Application,缩写为 SPA)定义了一组类用于简化 Web 应用(Rich Client)开发,最常见的单页 ...

  4. Azure 门户使用概览

    Azure 门户是管理 Azure 云平台的核心工具,用户可以在其中预配和管理 Azure 资源.本教程将帮助你熟悉Azure管理门户,包括一些关键功能的介绍,并演示了如何通过 Azure 门户创建虚 ...

  5. 快速搭建高可用 LNMP Web应用基础架构

    云服务器费用:查看费用 产品详情                 产品介绍 本镜像是根据Azure Resource Manager模板创建的,基于资源组下的高可用web系统,主要包括前端web负载均 ...

  6. LoadRunner问题解决

    1.问题:复制脚本,修改后并保存,直接在controller中加载脚本,无法创建用户,出现“Loadrunner Controller cannot create Vusers.  Ensure th ...

  7. DDOS介绍

    DDOS: Data Domain Operating System(DD OS),即数据域操作系统----管理EMC的数据域拷贝存储系统(powers EMC Data Domain dedupli ...

  8. ABAP的Package interface, 安卓的manifest.xml和Kubernetes的Capabilities

    ABAP 事务码SE21创建ABAP包接口.这是ABAP基于包层面的访问控制实现逻辑.包里可以存储很多ABAP对象.如果开发人员想将某些对象声明为包外程序也能访问,可以将这些对象放在包接口的Visib ...

  9. cluvfy stage命令用法

    1.获取集群验证工具cluvfy的帮助信息 grid@rac1:/home/grid>cluvfy -help USAGE: cluvfy [ -help ] cluvfy stage { -l ...

  10. [神经网络]一步一步使用Mobile-Net完成视觉识别(三)

    1.环境配置 2.数据集获取 3.训练集获取 4.训练 5.调用测试训练结果 6.代码讲解 本文是第三篇,获取tfboard训练集. 前面我们拿到了所有图片对应的标注信息的xml文件,现在我们需要先把 ...