zoukankan      html  css  js  c++  java
  • Python+selenium之下载文件

    一、Firefox文件下载

    Web容许我们设置默认的文件下载路劲,文件会自动下载并且存放在指定的目录下。

     1 from selenium import webdriver
     2 import os
     3 fp = webdriver.FirefoxProfile()
     4 fp.set_preference("browser.download.folderList",0)
     5 fp.set_preference("browser.download.manager.showhenStarting",True)
     6 fp.set_preference("browser.download.dir",os.getcwd())
     7 fp.set_preference("browser.helperApps.neverAsk.saveToDisk","applaction/octet-stream")#下载文件类型
     8 
     9 driver = webdriver.Firefox(firefox_profile = fp)
    10 driver.get("http://pypi.Python.org/pypi/selenium")
    11 driver.find_element_by_xpath("//*[@id='download-button']/a").click()
    12 
    13 driver.find_element_by_xpath("//*[@id='content']/div[3]/table/tbody/tr[3]/td[1]/span/a[1]").click()

    为了让Firefox浏览器能实现文件下载,需要通过FirefoxProfile()对其做一些设置。

    browser.download.foladerList :设置成0代表下载到浏览器默认下载路径,设置成2则可以保存到指定的目录。

    browser.download.manager.showWhenStarting  :是否显示开始:True为显示开始,Flase为不显示开始。

    browser.download.dir :用于指定所下载文件的目录。

    os.getcwd()函数不需要传递参数。用于返回当前的目录。

    browser.helperApps.neverAsk.saveToDisk  :对所给文件类型不再弹出框进行询问。

     1 from selenium import webdriver
     2 from time import sleep
     3 
     4 profile = webdriver.FirefoxProfile()
     5 profile.set_preference('browser.download.dir', 'd:\')  #现在文件存放的目录
     6 profile.set_preference('browser.download.folderList', 2)
     7 profile.set_preference('browser.download.manager.showWhenStarting', False)
     8 profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')
     9 
    10 driver = webdriver.Firefox(firefox_profile=profile)
    11 
    12 driver.get('http://sahitest.com/demo/saveAs.htm')
    13 #driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
    14 driver.find_element_by_xpath('/html/body/a[1]').click()
    15 sleep(20)
    16 driver.quit()

    二、Chrome文件下载

    download.default_directory:设置下载路径

    profile.default_content_settings.popups:设置为0禁止弹出窗口

    from selenium import webdriver 

    from time import sleep
    options = webdriver.ChromeOptions()
    prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\'}
    options.add_experimental_option('prefs', prefs)
    driver = webdriver.Chrome(executable_path='D:\chromedriver.exe', chrome_options=options)
    driver.get('http://sahitest.com/demo/saveAs.htm')
    driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
    sleep(3)
    driver.quit()
  • 相关阅读:
    jQuery1.11源码分析(6)-----jQuery结构总揽
    保存知乎收藏夹功能的NodeJS版本
    浏览器兼容性小整理和一些js小问题(后面会继续更新)
    jQuery1.11源码分析(5)-----Sizzle编译和过滤阶段[原创]
    jQuery1.11源码分析(4)-----Sizzle工厂函数[原创]
    【原创】Redux 卍解
    【原创】移动端高清、多屏适配方案
    【原创】ui.router源码解析
    【原创】ReFlux细说
    【原创】express3.4.8源码解析之中间件
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7235663.html
Copyright © 2011-2022 走看看