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)

建议使用第二种,这样不需要设置浏览器,可移植性好。

时间: 2024-10-07 17:24:31

Python WebDriver + Firefox 文件下载的相关文章

python webdriver firefox 登录126邮箱,先添加联系人,然后进入首页发送邮件,带附件。

代码:#encoding=utf-8from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_condition

How to set Selenium Python WebDriver default timeout?

Trying to find a good way to set a maximum time limit for command execution latency in Selenium Python WebDriver. Ideally, something like: ff = webdriver.Firefox() ff.implicitly_wait(10) # seconds ff.get("http://somedomain/url_that_delays_loading&quo

转来的——python webdriver自动化测试初步印象——转来的

python webdriver自动化测试初步印象 以下示例演示启动firefox,浏览google.com,搜索Cheese,等待搜索结果,然后打印出搜索结果页的标题 from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.

Python webdriver API- 浏览器的操作

浏览器的操作 1)浏览器最大化 代码示例: #coding=utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get("http://www.baidu.com") print "浏览器最大化" driver.maximize_window() #将浏览器最大化显示 driver.quit() 2)设置浏览器的宽.高 代码示例: #coding=utf-8 from se

二. Python WebDriver环境搭建

1. 安装Selenium 在命令行中输入: 显示安装成功: 2. 测试例子 打开百度页面并在输入框输入搜索内容(默认为firework) 1 # 1. Selenium默认为Firefox.验证 2 from selenium import webdriver 3 4 driver = webdriver.Firefox() 5 # 将控制的webdriver的Firefox赋值给driver:获得了浏览器对象才可以启动浏览器,打开网址,操作页面 6 7 driver.get("http://

python webdriver api-操作日期元素的方法

操作日期元素 第一种方式直接向输入框输入日期 dateInputBox = self.driver.find_element_by_id("datepicker") dateInputBox.send_keys("11/24/2016") #encoding=utf-8 from selenium import webdriver import unittest, time, traceback from selenium.webdriver.support.ui

python webdriver 测试框架-数据驱动DDT的例子

先在cmd环境 运行 pip install ddt 安装数据驱动ddt模块  脚本: #encoding=utf-8 from selenium import webdriver import unittest,time import logging,traceback import ddt from selenium.common.exceptions import NoSuchElementException #初始化日志对象 logging.basicConfig( #日志级别 leve

python webdriver 显示等待-自动登录126邮箱,添加联系人

脚本内容:#encoding=utf-8#author-夏晓旭from selenium import webdriverimport timefrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.common.exceptions import TimeoutException, NoSuchElementExceptioni

python webdriver 报错WebDriverException: Message: can't access dead object的原因(pycharm中)

PyCharm中运行firefox webdriver访问邮箱添加通讯录的时候报错-WebDriverException: Message: can't access dead object 调了半天,发现是因为在登录操作后没有从frame中切换出来导致的,因为在登录的时候需要先切换到frame中,登录之后要切换出来才能继续其他操作. 下面是我运行的代码,driver.switch_to.default_content()这一行被我注释掉了,结果就报这个错 代码:driver=webdriver