能够获取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. JavaScript中var a=b=c=d的发现

    看了别人的博客随手记录下 先看一下以下的代码 var a=1,b=2,c=3; (function(){ var a=b=1; })(); console.log(a); console.log(b) ...

  2. PADS 创建封装笔记

    1.在PADS logic中新建元件和CAE封装 2.在PADS layout 中建立元件的PCB封装 3.用PADS Library Converter 把以前版本的库转化为现在的版本.

  3. 编译错误you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)

    解决方法: export FORCE_UNSAFE_CONFIGURE=1

  4. HDU 4055 Number String(DP计数)

    题意: 给你一个含n个字符的字符串,字符为'D'时表示小于号,字符为“I”时表示大于号,字符为“?”时表示大小于都可以.比如排列 {3, 1, 2, 7, 4, 6, 5} 表示为字符串 DIIDID ...

  5. windows网络和共享中心“查看基本网络信息并设置连接”为“未知”的解决方案

    存在问题“查看基本网络信息并设置连接”为“未知”.如图所示: 解决步骤 运行services.msc 启动Network List Service 若无法启动,打开其属性,选择“登录”选项卡,将启动类 ...

  6. UOJ#7 NOI2014 购票 点分治+凸包二分 斜率优化DP

    [NOI2014]购票 链接:http://uoj.ac/problem/7 因为太麻烦了,而且暴露了我很多学习不扎实的问题,所以记录一下具体做法. 主要算法:点分治+凸包优化斜率DP. 因为$q_i ...

  7. MovieReview—Ghost in the Shell 2: Innocence(攻壳机动队2:无罪)

    Doll killing event            The movie was developed around a series of doll murders. Barthes and o ...

  8. Java设计模式之责任链模式、职责链模式

    本文继续介绍23种设计模式系列之职责链模式.   什么是链 1.链是一系列节点的集合. 2..链的各节点可灵活拆分再重组.   职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间 ...

  9. Beta版本发布

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/?page=2 这个作业要求在哪里 <作业要求的 ...

  10. JavaScript无提示关闭当前页面窗口,兼容IE/Firefox/Chrome

    <script type="text/javascript" language="javascript"> function fc(){ var b ...