selenium下载文件_INC随我的博客-程序员秘密

技术标签: selenium  Selenium  Python  

一、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()

这里写图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38542085/article/details/78495370

智能推荐

AMS源码分析_ams 源码_小山研磨代码的博客-程序员秘密

转载来源:AMS源码分析(一)Activity生命周期管理AMS源码分析(二)onActivityResult执行过程AMS源码分析(三)AMS中Activity栈管理详解(一)Activity生命周期管理1. 前言AMS(ActivityManagerService)是Activity管理的核心组件,提供了Activity的启动、生命周期管理、栈管理等功能,熟悉AMS会对我们认识Activity的工作原理有很大的帮助。当前比较成熟的插件化技术,也是通过对Activity启动流程中的重要组件

毕设课设基于Android的校园订餐APP开发(附源码)_安卓订餐系统源码_泛古玉的博客-程序员秘密

系统由商家侧 APP 和用户(学生)侧 APP 两大模块组成,商家 APP 面向食堂的各个商户,商户能够使用其进行菜品的上下架,同时远程接受订单与得到用户评价反馈;用户(学生)侧 APP 面向各位在食堂就餐的学生,学生可以使用其进行菜品预览、在线下单,能够看到餐品的全部评价,同时也能在消费后对菜品进行评价。............

AM-Softmax Loss_amsoftmax github_Peanut_范的博客-程序员秘密

《Additive Margin Softmax for Face Verification》2018,Feng Wang et al.引言:本文提出一个概念上简单且几何上可解释的目标函数:additive margin Softmax (AM-Softmax),用于深度人脸验证,使得人脸特征具有更大的类间距和更小的类内距。同时,本文强调和讨论了特征归一化的重要性。实验表明AM-Soft...

实现简单动态自动匹配输入的内容_动态输入匹配怎么做_AC_XXZ的博客-程序员秘密

用这两个控件分别实现这两个:package com.example.autocomplete;import android.app.Activity;import android.os.Bundle;import android.util.Log;import andr

Makefile.am文件详解_u012903992的博客-程序员秘密

原文:https://blog.csdn.net/u013485792/article/details/51355668Makefile.am是一种比Makefile更高层次的编译规则,可以和configure.in文件一起通过调用automake命令,生成Makefile.in文件,再调用./configure的时候,就将Makefile.in文件自动生成Makefile文件了。所以Makefile.am文件是比Makefile文件更高的抽象。下面我根据自己的工作中的一些应用,来讨论Makefil

C# 实现软件授权码的功能_private system.windows.forms.textbox textbox2_任玉腾的博客-程序员秘密

对于一个商业软件来说,授权码这个功能必不可少。我这里采用CPU序列号加硬盘标识来判断是否授权。完整代码如下:using Microsoft.Win32;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;us...

随便推点

tomcat 三种部署方式以及server.xml文件的几个属性详解(Root.xml,多目录Path部署)_OkidoGreen的博客-程序员秘密

一、直接将web项目文件件拷贝到webapps目录中  这是最常用的方式,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。如果你想要修改这个默认目录,可以在conf下的server.xml文件里修改Host标签里的appBase值。  这个方法实际上和在IDE开发环境里部署项目是一样的。  用此方法的访问路径为http://lo...

压力 性能 测试 工具 ab (apache benchmark) jmeter_benchmark jmeter_conquer0715的博客-程序员秘密

快速开始ab参数很多,一般我们用 -c 和 -n 参数就可以了. 例如: ./ab -c 100 -n 10000 http://127.0.0.1/index.php 介绍ab(apache benchmark) —— apache自带的一个测试工具,一般把apache压力测试称为AB测试. ab工具的位置在apache的bin目录里,参数说明:Usage: ./ab

Redis集群和优化_走马川行雪的博客-程序员秘密

1、Redis介绍Redis服务器程序采用单进程模型(同一时刻只能处理一个请求)处理客户端请求 Redis基于内存并且支持多达六种数据类型 Redis是一款非常优秀的NoSQL数据库 Redis可以与Lua脚本结合爆发出强大的功能点2、Redis安装详见:https://www.runoob.com/redis/redis-install.html3、Redis之Java客户端...

三星android 8.0的变化,三星关于Android 8.0更新时间表出炉:Note 8本月更新_地理狗的博客-程序员秘密

上月,相信三星S8系列的用户已经先后收到Android 8.0的更新推送。那么,三星Note8的Android 8.0什么时候能跟上呢?其实,三星Note8的Android 8.0已经在计划中了。据外媒消息显示,三星土耳其方面已经在其官网公布了三星计划更新Android 8.0正式版的机型的具体推送时间,其中就包括三星Note8、S7、S7+等机型可获得升级。从三星土耳其官方网站上可以看到,最先吃...

STM32 USB 学习_stm32 usb拔出_yhl_sophia的博客-程序员秘密

USB硬件接口1、Type —— Type A(普通PC端)、Type B(USB设备的接口)、Type C(属于USB3.0)2、Mini —— Mini A、Mini B(数码相机、移动硬盘等移动设备)3、 Micro —— Micro A、MicroB(手机等移动设备),属于USB2.0USB模式1、USB HOST模式2、USB OTG U...

推荐文章

热门文章

相关标签