webdriver高级应用 -无人工干预地自动下载某个文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/2/13 18:59 # @Author : solo # @Site : # @File : webdriver_11_6.py # @Software: PyCharm #无人工干预地自动下载某个文件 #目的:在网页上下载时,通常需要人为设定下载文件并选择保存路径,这样就无法实现完全自动下载的工程。以下示例是基于firefox浏览器的 #全自动化文件下载操作,脚本执行后会将文件保存到指定目录的文件夹下。 from selenium import webdriver import unittest,time class TestDemo(unittest.TestCase): def setUp( self ): #创建一个firefoxprofile示例,用于存放自定义配置 profile = webdriver.FirefoxProfile() #指定下载路径,默认只会自动创建一级目录,如果指定了 #多级不存在的目录,将会下载到默认路径 profile.set_preference( 'browser.download.dir' , 'd:\\iDownload' ) #将browser.download.folderList设置为2,表示将文件下载到指定路径 #设置成2表示使用自定义下载路径; #设置成0表示下载到桌面,设置成1表示下载到默认路径 profile.set_preference( 'browser.download.folderList' , 2 ) #'browser.helperApps.alwaysAsk.force对于未知的MIME类型文件会弹出窗口 #让用户处理,默认值为True,设定为False表示不会记录打开未知MIME类型文件的方法 profile.set_preference( 'browser.helperApps.alwaysAsk.force' , False ) #在开始下载时是否显示下载管理器 profile.set_preference( "browser.download.manage.showWhenStaring" , False ) #设定为False会把下载框进行隐藏 profile.set_preference( "browser.download.manager.useWindow" , False ) #默认值为True,设定为False表示不获取焦点 profile.set_preference( "browser.download.manager.alertonEXEopen" , False ) # # # profile.set_preference( "browser.helperApps.neverAsk.openfile" , "application/pdf" ) profile.set_preference( "browser.helperApps.neverAsk.saveToDisk" , "application/zip,application/octet-stream" ) profile.set_preference( "browser.download.manager.showAlertonComplete" , False ) profile.set_preference( "browser.download.manager.closeWhenDone" , False ) self .driver = webdriver.Firefox(executable_path = "C:\\webdriver_firefox_driver" , firefox_profile = profile) def test_dataPicker( self ): #访问webdriver的驱动firefox的驱动文件下载网址 urll = "https://github.com/mozilla/geckodriver/releases" self .driver.get(urll) self .driver.find_element_by_xpath\ ( '//strong[.="geckodriver -v0.11.1 - win64.zip"]' ).click() #等待文件加载 time.sleep( 10 ) url = "https://www.python.org/downloads/release/python - 2712/" self .driver.get(url) self .driver.find_element_by_link_text\ ( "Windows x86 -64 MSI installer" ).click() time.sleep( 100 ) def tearDown( self ): self .driver.quit() if __name__ = = "__main__" : unittest.main() |
分类:
selenium3.0
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现