• 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()
  • 相关阅读:
    深入理解协程(三):async/await实现异步协程
    AES中ECB模式的加密与解密(Python3.7)
    深入理解协程(二):yield from实现异步协程
    系统结构实践期末大作业
    第7次实践作业
    第6次实践作业
    第5次实践作业
    第4次实践作业
    第3次实践作业
    第2次实践作业
  • 原文地址:https://www.cnblogs.com/test-chen/p/10811603.html
Copyright © 2020-2023  润新知