selenium自动下载文件到指定目录

本文参考:https://www.cnblogs.com/huxiaofeng1029/p/17383726.html

有时候,我们需要在网页中点击某些按钮,将文件下载到本地,而浏览器会默认将文件下载到默认的“下载”文件夹,如果我们需要将文件下载到我们指定的地方,那么就需要添加一些配置:本文以下载python最新版为例:

import time
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# 下面这些是为了获取chrome的配置信息,可选择自己需要的进行添加
profile = 'Default'
executable_path = ''
options = Options()
options.add_argument('--start-maximized') # 无头模式
# self.options.add_argument('--headless')
# self.options.add_argument('--disable-gpu')
options.add_argument('--load-extension=C:\\Users\\Admin\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\lnbmbgocenenhhhdojdielgnmeflbnfb\\4.5.3_0')
options.add_argument(r'--user-data-dir=C:\Users\Admin\AppData\Local\Google\Chrome\User Data\Default')
options.add_argument(f'--profile-directory={profile}') # 下面是为下载文件到指定目录所需的配置
download_dir = os.getcwd() + '\\data\\sellerSprite'
if not os.path.exists(download_dir):
os.makedirs(download_dir)
prefs = {
'profile.default_content_settings.popups': 0,
"download.default_directory": download_dir, # 设置默认下载目录
"download.prompt_for_download": False, # 取消下载时的询问
"download.directory_upgrade": True, # 支持目录升级
"safebrowsing.enabled": True # 禁用安全浏览功能
} options.add_experimental_option("prefs", prefs) driver = webdriver.Chrome(options=options) # 打开python官网
driver.get('https://www.python.org/downloads/')
time.sleep(5) # 找到下载按钮 点击下载
driver.find_element(By.XPATH, '//*[@id="touchnav-wrapper"]/header/div/div[2]/div/div[2]/p/a').click()
time.sleep(15)
driver.quit()

使用selenium下载文件--设置下载文件自动保存文件夹的更多相关文章

  1. VSCode自动保存文件设置

    很多时候敲了一大堆代码,结果手贱或者电脑没电或者电脑突然崩溃,如果没有保存,只能说GG.好在VSCode有自动保存代码的功能,而且有好几种自动保存的模式选择,设置方法如下: 进入">文 ...

  2. selenium 下载文件设置下载路径

    Chrome 文件下载 Chrome浏览器类似,设置其options: download.default_directory:设置下载路径 profile.default_content_settin ...

  3. VIM如何自动保存文件、自动重加载文件、自动刷新显示文件

    1.手动重加载文件的命令是:e! 2.一劳永逸的方法是:vim提供了自动加载的选项 autoread,默认关闭. 在vimrc中添加 set autoread即可打开自动加载选项,相关选项: :hel ...

  4. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  5. C#用openfiledialog文件和savefileDialog打开和保存文件

    一 打开文件 Stream myStream = null; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog ...

  6. #用openfiledialog文件和savefileDialog打开和保存文件

    一.打开文件 Stream myStream = null;            OpenFileDialog openFileDialog1 = new OpenFileDialog();     ...

  7. Windows下设置U盘自动复制文件到本地

    一.打开记事本,把下面的代码复制进去 set fso=createobject("scripting.filesystemobject") set ws=createobject( ...

  8. 解决phpstorm ftp自动保存文件问题

    初次使用phpstorm, 1.配置ftp时,远程文件要用/ftp用户名/文件夹名: 2.由于版本管理的原因(猜测),直接从本地原有文件修改时各种办法都无法上传,结果从服务器上下载一份再修改,解决这个 ...

  9. python——在文件存放路径下自动创建文件夹!

    1.a.py文件存放的路径下为(D:\Auto\eclipse\workspace\Testhtml\Test) 2.通过os.getcwd()获取的路径为:D:\Auto\eclipse\works ...

  10. java文件上传,自动判断文件类型

    public enum FileType { /** * JEPG. */ JPEG("FFD8FF"), /** * PNG. */ PNG("89504E47&quo ...

随机推荐

  1. 内网穿透之http代理服务器

    在公网访问内网http服务可以用内网穿透工具,例如frp和nps等优秀工具.但我发现这类工具会在服务器启动不止一个端口,对于有些网络审查来说很容易发现在进行内网穿透.因此我想是否可以只在服务器启动一个 ...

  2. [AI回答]Java中Long和long的区别,为什么在Springboot项目中一般使用Long

    Long 和 long 的区别 在Java中,Long 和 long 是两个不同的概念,它们分别代表不同的数据类型: long: 这是一个 基本数据类型 (primitive type). 它用于存储 ...

  3. 【Javaweb】【Servlet】简单验证用户的登陆

    点击查看代码 | jsp <%-- Created by IntelliJ IDEA. User: xrilang Date: 30/12/2021 Time: 17:31 --%> &l ...

  4. Linux readonly

    1. 概念readonly在shell脚本中,用来标记变量是只读的,后续执行过程中就不能对其值进行改变,这个用来定义一些常量类的变量. 如果对其进行重新赋值,会提示错误 [root@localhost ...

  5. 为什么 Llama 3.3 70B 比 GPT-4o 和 Claude 3.5 Sonnet 更优秀

    过去七天的 AI 新闻如狂风暴雨般涌来,AI 世界发生了许多重大变化.在这篇文章中,我们将深入探讨来自 Llama 3.3 70B.GPT-4o 和 Claude 3.5 Sonnet 等主要参与者的 ...

  6. Qt音视频开发44-本地摄像头推流(支持分辨率/帧率等设置/实时性极高)

    一.前言 本地摄像头推流和本地桌面推流类似,无非就是采集的设备源头换成了本地摄像头设备而不是桌面,其他代码完全一样.采集本地摄像头实时视频要注意的是如果设置分辨率和帧率,一定要是设备本身就支持的,如果 ...

  7. ubuntu更换conda的源

    ubuntu更换conda的源有两种方法:一.使用命令行更换Conda源至国内镜像站点.二.直接创建并编辑编辑conda的配置文件.condarc. 一.使用命令行更换Conda源至国内镜像站点 要在 ...

  8. [转]Vetur can't find `tsconfig.json` or `jsconfig.json` in d:\VueProjects\myroute.

    vue界面启动项目 visual code报错 如下图,找到 Ignore Project Warning 前边打上对勾

  9. [转]MySQL和MySQL驱动mysql-connector-java升级到8.0.X版本

    原文链接:MySQL和MySQL驱动mysql-connector-java升级到8.0.X版本

  10. 携程技术分享:亿级流量的办公IM及开放平台技术实践

    本文由携程技术Jim分享,原题"日访问过亿,办公IM及开放式平台在携程的实践",下文进行了排版和内容优化. 1.引言 携程内部的办公IM项目最早在2016年立项,经历了初期简单办公 ...