一、Firefox文件下载
Web容许我们设置默认的文件下载路劲,文件会自动下载并且存放在指定的目录下。
from selenium import webdriver import os fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList",0) fp.set_preference("browser.download.manager.showhenStarting",True) fp.set_preference("browser.download.dir",os.getcwd()) fp.set_preference("browser.helperApps.neverAsk.saveToDisk","applaction/octet-stream")#下载文件类型 driver = webdriver.Firefox(firefox_profile = fp) driver.get("http://pypi.Python.org/pypi/selenium") driver.find_element_by_xpath("//*[@id=‘download-button‘]/a").click() 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 :对所给文件类型不再弹出框进行询问。
from selenium import webdriver from time import sleep profile = webdriver.FirefoxProfile() profile.set_preference(‘browser.download.dir‘, ‘d:\\‘) #现在文件存放的目录 profile.set_preference(‘browser.download.folderList‘, 2) profile.set_preference(‘browser.download.manager.showWhenStarting‘, False) profile.set_preference(‘browser.helperApps.neverAsk.saveToDisk‘, ‘application/zip‘) driver = webdriver.Firefox(firefox_profile=profile) driver.get(‘http://sahitest.com/demo/saveAs.htm‘) #driver.find_element_by_xpath(‘//a[text()="testsaveas.zip"]‘).click() driver.find_element_by_xpath(‘/html/body/a[1]‘).click() sleep(20) 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()
#src属性下路径下载
import urllib
driver = webdriver.Chrome()
driver.get(‘http://www.baidu.com‘)
pic = driver.find_element(By.XPATH,‘//*[@id="lg"]/img[1]‘)
pic_url = pic.get_attribute(‘src‘)#获取图片路径
# 保存图片到指定路径
urllib.urlretrieve(pic_url, os.getcwd()+‘\\photo\\bd_logo1.jpg‘)
原文:https://www.cnblogs.com/East-fence/p/12112386.html