• 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()
  • 相关阅读:
    状态图(Statechart Diagram)—UML图(五) .
    时序图(Sequence Diagram)—UML图(六)
    传说中的WCF(8):玩转消息协定
    SCSF 系列:利用 Smart Client Software Factory 实现 StopLight (Step By Step)
    ASP.NET MVC 3.0(四): 我要MVC潜规则之配置Routing
    传说中的WCF(14):WCF也可以做聊天程序
    部署图(Deployment Diagram)—UML图(九)
    活动图(Activity Diagram)—UML图(四)
    今天做的机试题Socket聊天程序
    UML的基本结构 .
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7235663.html
Copyright © 2020-2023  润新知