webdriver高级应用- 测试HTML5语言实现的视频播放器
能够获取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语言实现的视频播放器的更多相关文章
- webdriver高级应用- 在HTML5的画布元素上进行绘画操作
#encoding=utf-8 import unittest from selenium import webdriver import time class TestDemo(unittest.T ...
- HTML5 自制本地网页视频播放器
HTML5初试:本地视频用网页打开啦半个广告都可以没有,看来暴风什么的快要淘汰了. 视频格式还是有要求的,看来要备一个转码器. 格式 IE Firefox Opera Chrome Safari Og ...
- HTML5视频(自定义视频播放器源码)
video对象 兼容情况: safari浏览器不支持webm格式 Chrome浏览器支持webm格式 ie8以及以下不支持video标签 , ie9支持video标签 ,但是支持mp4格式的 Fire ...
- WebDriver高级应用实例(10)
10.1控制HTML5语言实现的视频播放器 目的:能够获取html5语言实现的视频播放器视频文件的地址.时长.控制进行播放暂停 被测网页的网址: http://www.w3school.com.cn/ ...
- Selenium WebDriver高级用法
Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplo ...
- 测试c语言函数调用性能因素之测试三
函数调用:即调用函数调用被调用函数,调用函数压栈,被调用函数执行,调用函数出栈,调用函数继续执行的一个看似简单的过程,系统底层却做了大量操作. 操作: 1, 调用函数帧指针 ...
- JMeter ----与WebDriver安装与测试
JMeter ----与WebDriver安装与测试 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 环境与参考 jvm版本: 1.8.0_65 j ...
- JMeter (1) —— JMeter与WebDriver安装与测试(101 Tutorial)
JMeter (1) -- JMeter与WebDriver安装与测试(101 Tutorial) 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 ...
- Selenium WebDriver高级应用
WebDriver高级应用 public class Demo4 { WebDriver driver; // @BeforeMethod:在每个测试方法开始运行前执行 @BeforeMethod p ...
随机推荐
- ecshop分类页把分类描述改成FCKeditor编辑器
最近放一个网站 http://www.macklin.cn/productline/35 有个产品分类页面需要添加分类缩略图和图文的描述 一.首先说下添加分类缩略图的步骤吧 1,依葫芦画瓢,参照的是e ...
- Android方法数methods超过65536
当Android App中的方法数超过65535时,如果往下兼容到低版本设备时,就会报编译错误: Cannot fit requested classes in a single dex file. ...
- LoadRunner创建脚本和场景流程
1)脚本创建流程创建脚本->选择协议-设置录制选项-录制脚本-停止录制-优化脚本(去掉无用内容)-强化脚本(注释.代码结构调整.参数化.检查点.事物.关联)-调试脚本(观察日志) 2)场景设置的 ...
- jQ实现JSON.stringify(obj)方法
jQstringify是使用jQuery实现的JSON.stringify(obj)方法 代码如下:<script type="text/javascript" src=&q ...
- 第三单元OO总结
- ajax的序列化表单提交
通过传统的 form 表单提交的方式上传文件 ? 1 2 3 4 <form id="uploadForm" action="" method=" ...
- C#数组协方差
对于任意两个“引用类型”A和B,如果存在从A到B的隐式引用转换或显式引用转换,则也一定存在从数组类型A[R]到数组类型B[R]的相同的引用转换,其中R可以是任何给定的“秩说明符”,但是这两个数组类型必 ...
- python中的sort、sorted排序
我们通常会遇到对数据库中的数据进行排序的问题,今天学习一下对列表和字典的排序方法. 列表 第一种:内建方法sort sort()对列表排序是永久性的排序. 用法:sort(*, key=None, r ...
- Windows7设置局域网文件共享
首先要实现共享必须设置共享的机器与访问共享的机器在同一个工作组中. 右键桌面上的计算机图标=>属性 如果不一样的话,就需要点击[更改设置] 右键要共享的文件或者文件夹,点击[共享]打开共享标签: ...
- 01、Linux介绍
一. Linux介绍 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和 ...