Python WebDriver + Firefox 文件下载
firefox可以通过 在地址栏输入:about:config 或about:aupport 来查看或修改配置信息。
这里有两种解决方式,
1、设置自动保存下载
如下图勾选:以后自动采用相同的动作处理此类文件
这样下次在下载该类型的文件时就不会这样提醒了。
如果想修改设置可以在 浏览器选项中进行修改
如下图
这样设置完成后,但是程序启动时打开的浏览器并没有按照这种配置打开。
对比下图可以发现,通过webdriver打开的浏览器与手工打开的浏览器展示的不同,这是因为webdriver打开的浏览器没有按照浏览器设置的配置文件打开。如果想按照配置文件打开,在打开之前要先获取配置文件信息。
加入代码如下:
profile = webdriver.FirefoxProfile(r"C:\Users\Skyyj\AppData\Roaming\Mozilla\Firefox\Profiles\1rzh6139.default") self.driver = webdriver.Firefox(profile)
2、第二种方法
就是在代码中加入配置信息
通过about:config
通过%APPDATA%\Mozilla\Firefox\Profiles\找到默认配置
找到mimeTypes.rdf目录,用其它方式打开,查找你刚刚保存的文件类型
mimeTypes.rdf 就存在上面 profile 的配置路径中
C:\Users\Skyyj\AppData\Roaming\Mozilla\Firefox\Profiles\1rzh6139.default
查找fileExtensions="xlsx"
NC:value="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
NC:editable="true"
NC:fileExtensions="xlsx"
NC:description="xlsx File">
从文件中就可以得知我们需要的文件类型是什么
代码如下:
#profile = webdriver.FirefoxProfile(r"C:\Users\Skyyj\AppData\Roaming\Mozilla\Firefox\Profiles\1rzh6139.default") profile = webdriver.FirefoxProfile() ##设置成0代表下载到浏览器默认下载路径;设置成2则可以保存到指定目录 profile.set_preference("browser.download.folderList", 2) #这里设置与否不影响,没有发现有什么影响。 #profile.set_preference("browser.download.manager.showWhenStarting", False) profile.set_preference("browser.download.dir", r"c:\Down") profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") #这里设置与否没有发现有什么影响 #profile.set_preference("browser.helperApps.alwaysAsk.force", False); self.driver = webdriver.Firefox(profile)
建议使用第二种,这样不需要设置浏览器,可移植性好。
您的资助是我最大的动力!
金额随意,欢迎来赏!
您的资助是我最大的动力!
金额随意,欢迎来赏!
因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Blue●Sky】!
【Selenium-Python】技术交流群期待你的加入【 193056556 】