WebDriver高阶API(8)

1七、测试HTML5语言实现的视频播放器html

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

1八、在HTML5的画布元素上进行绘画操做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()

1九、使用Chrome浏览器自动将文件下载到指定路径web

#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插件chrome

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

2一、禁用IE的保护模式canvas

#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()
相关文章
相关标签/搜索