转自:Selenium WebDrver3.0 自动化测试框架 实战指南
#encoding=utf-8 from selenium import webdriver import unittest,time class TestDemo(unittest.TestCase): def setUp(self): #self.driver= webdriver.Firefox() #创建一个FirefoxProfile的实例,用于存放自定义配置 profile = webdriver.FirefoxProfile() profile.set_preference('browser.download.dir','d:\\iDownload') #将browser.download.folderList设置成2,表示将文件下载到指定路径 #设置成0表示下载到桌面;设置为1表示下载到默认路径 profile.set_preference('browser.download.folderList',2) #browser.helpApps.alwaysAsk.force对于未知的MIME类型文件会弹出窗口 #让用户处理,默认值为True,设定为False表示不会记录打开未知MIME类型 #文件方式 profile.set_preference('browser.helpApps.alwaysAsk.force',False) #在开始下载时是否显示下载管理器 profile.set_preference('browser.download.manager.showWhenStarting',False) #设定为False会把下载框进行隐藏 profile.set_preference('browser.download.manager.useWindow',False) #默认值为True设置为false表示不获取焦点 profile.set_preference('browser.download.manager.focusWhenStarting',False) #下载exe文件弹出警告,默认值为True ,设置为False则不会弹出警告框 profile.set_preference('browser.download.manager.alertOnEXEOpen',False) #browser.helperApps.neverAsk.openFile表示直接打开下载文件,不显示确认框 #默认值为空字符串,下行代码设定了多种文件的MIME类型 #例如 application/exe,表示.exe文件 #application/execl 表示Excel类型的文件 profile.set_preference('browser.helperApps.neverAsk.openFile',"application/pdf") #对所给出的文件类型不在弹出提示框进行询问,直接保存在本地盘 profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip,application/octet-stream') #browser.download.manager.showAlertOnComplete设定下载文件结束后是否 #提示下载完成提示框 profile.set_preference('browser.download.manager.showAlertOnComplete',False) #browser.download.manager.closeWhenDone 设定结束后是否自动关闭关闭下载框 #默认值是 True,设置为False表示不关闭下载管理器 profile.set_preference("browser.download.manager.closeWhenDone",False) #启动浏览器时,通过firefox_profile参数 #将自动配置添加到FirefoxProfile对象中 self.driver = webdriver.Firefox(firefox_profile=profile); def test_dataPicker(self): #访问webDriver驱动Firefox的驱动文件下载网址 url = "https://github.com/mozilla/geckodriver/releases" self.driver.get(url) #选择下载ZIP类型文件,使用application/zip指代此类型文件 self.driver.find_element_by_xpath("//strong[. = 'geckodriver-v0.16.1-win64.zip']").click() #等待加载下载文件 time.sleep(100) def tearDown(self): self.driver.quit(); if __name__ == '__main__': unittest.main()