17、测试HTML5语言实现的视频播放器
#encoding=utf-8 import unittest import time from selenium import webdriver class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome(executable_path = "D:\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("D:\videoPlay_pause.jpg") def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()
18、在HTML5的画布元素上进行绘画操作
#encoding=utf-8 import unittest import time from selenium import webdriver class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Ie(executable_path = "D:\IEDriverServer") def test_HTML5Canvas(self): url = "http://www.w3school.com.cn/tiy/loadtext.asp?f=html5_canvas_line" #访问指定网址 self.driver.get(url) #调用Javascript语句,在页面画布上画一个红色的图案 #getElementById("myCanvas");语句获取页面上的画布元素 #var cxt = c.getContext("2d");设定画布为2d #cxt.fillStyle = "#FF0000"; 设定填充颜色为#FF0000 #cxt.fillRect(0,0,150,150);在画布上绘制矩形 self.driver.execute_script("var c = document.getElementById('myCanvas');" + "var cxt = c.getContext('2d');" + "cxt.fillStyle = '#FF0000';" +"cxt.fillRect(0,0,150,150);") time.sleep(3) #将绘制的红色矩形页面进行截屏,并保存为D盘的HTML5Canvas.jpg self.driver.save_screenshot("D:\HTML5Canvas.png") def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()
19、使用Chrome浏览器自动将文件下载到指定路径
#encoding=utf-8 import unittest,time from selenium import webdriver class TestDemo(unittest.TestCase): def setUp(self): #创建Chrome浏览器配置对象实例 chromeOptions = webdriver.ChromeOptions() #设定下载文件的保存目录为D盘的iDownload目录 #如果该目录不存在,将会自动创建 prefs = {"download.default_directory":"D:\iDownload"} #将自定义设置添加到Chrome配置实例对象中 chromeOptions.add_experimental_option("prefs",prefs) #启动带有自定义配置的Chrome浏览器 self.driver = webdriver.Chrome(executable_path = "D:\chromedriver",chrome_options = chromeOptions) def test_downloadFileByChrome(self): url = "https://pypi.org/project/selenium/#files" #访问将要下载文件的网址 self.driver.get(url) #找到要下载的文件链接页面元素,并单击进行下载 self.driver.find_element_by_partial_link_text("selenium-3.141.0.tar.gz").click() #等待50秒,以便文件下载完成 time.sleep(50) def tearDown(self): self.driver.quit() if __name__ == "__main": unittest.main()
20、禁用Chrome浏览器的PDF、Flash、Image插件
#encoding=utf-8 import unittest,time from selenium import webdriver from selenium.webdriver.chrome.options import Options class TestDemo(unittest.TestCase): def setUp(self): #创建Chrome浏览器的一个Options实例对象 chrome_options = Options() #设置Chrome浏览器禁用PDF、Flash和Image插件 profile = {"plugins.plugins_disabled":["Chrome PDF Viewer"], "plugins.plugins_disabled":["Adobe Flash Player"], "profile.managed_default_content_settings.images":2} chrome_options.add_experimental_option("prefs",profile) #向Options实例中添加禁用扩展插件的设置参数项 chrome_options.add_argument("--disable--extensions") #添加屏蔽--ignore-certificate-errors提示信息的设置参数项 chrome_options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"]) #添加浏览器最大化的设置参数项,一启动就最大化 chrome_options.add_argument("--start-maximized") #启动带有自定义设置的Chrome浏览器 self.driver = webdriver.Chrome(executable_path = "D:\chromedriver",chrome_options = chrome_options) def test_forbidPDFFlashImageInChrome(self): #访问爱奇艺 self.driver.get("http://www.iqiyi.com") #等待50秒,期间可以看到由于禁用了Flash插件,导致需要Flash支持的内容无法正常展示 time.sleep(10) #查看PDF和Flash插件禁用情况 self.driver.get("chrome://plugins/") time.sleep(10) def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()
21、禁用IE的保护模式
#encoding=utf-8 import unittest,time from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities class TestDemo(unittest.TestCase): def setUp(self): caps = DesiredCapabilities.INTERNETEXPLORER #将忽略IE保护模式的参数设置为True caps["ignoreProtectedModeSettings"] = True #启动带有自定义设置的IE浏览器 self.driver = webdriver.Ie(executable_path = "D:\IEDriverServer",capabilities = caps) def test_closeIEProtectedMode(self): #访问百度 self.driver.get("http://www.baidu.com") time.sleep(2) def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()