WebDriver高阶API(8)

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()

 

posted @ 2019-05-05 10:29  测试小子  阅读(282)  评论(0编辑  收藏  举报