zoukankan      html  css  js  c++  java
  • Python WebDriver + Firefox 文件下载

    firefox可以通过 在地址栏输入:about:config 或about:aupport 来查看或修改配置信息。 

    这里有两种解决方式,

    1、设置自动保存下载

    如下图勾选:以后自动采用相同的动作处理此类文件

    这样下次在下载该类型的文件时就不会这样提醒了。

    如果想修改设置可以在 浏览器选项中进行修改

    如下图

     这样设置完成后,但是程序启动时打开的浏览器并没有按照这种配置打开。

     对比下图可以发现,通过webdriver打开的浏览器与手工打开的浏览器展示的不同,这是因为webdriver打开的浏览器没有按照浏览器设置的配置文件打开。如果想按照配置文件打开,在打开之前要先获取配置文件信息。

    加入代码如下: 

            profile =  webdriver.FirefoxProfile(r"C:UsersSkyyjAppDataRoamingMozillaFirefoxProfiles1rzh6139.default")
    
            self.driver = webdriver.Firefox(profile)

     2、第二种方法

    就是在代码中加入配置信息

    通过about:config

    通过%APPDATA%MozillaFirefoxProfiles找到默认配置  

    找到mimeTypes.rdf目录,用其它方式打开,查找你刚刚保存的文件类型

    mimeTypes.rdf 就存在上面 profile 的配置路径中

    C:UsersSkyyjAppDataRoamingMozillaFirefoxProfiles1rzh6139.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:UsersSkyyjAppDataRoamingMozillaFirefoxProfiles1rzh6139.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)

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

  • 相关阅读:
    telnet用法 测试端口号
    控制台打印的Hibernate显示SQL语句 -1
    用户名要求 数字、字母、下划线的组合,其中数字和字母必须同时存在
    中国500强排行榜 财富中文网7-31
    Linux下部署tomcat及tomcat war包应用程序
    java 使用spring实现读写分离
    【MVC】bootstrap-paginator 分页
    加密算法
    JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)
    VS2015在对GIT的支持
  • 原文地址:https://www.cnblogs.com/Skyyj/p/7103095.html
Copyright © 2011-2022 走看看