python-3.x - 如何更改当前运行的 chrome 驱动程序会话中的默认下载目录
问题描述
如何更改当前运行的驱动程序会话中的默认下载目录?因为我需要多次更改下载目录以使用“for”循环将特定文件存储在特定位置。
以下是尝试更改已运行 chrome 驱动程序会话的默认目录的代码:
os.getcwd()
os.chdir("C:\\Site_tracker\\Output")
direc = ['S1_2g3g4g', 'S2_2g3g4g','S3_2g3g4g']
for i in direc:
if not os.path.exists(i):
os.makedirs(i)
download_path=os.path.abspath(i)
print(download_path)
chr_Options.add_experimental_option('prefs', {
"download.default_directory": "download_path", #Change default directory for downloads
"download.prompt_for_download": False, #To auto download the file
"download.directory_upgrade": True,
"plugins.always_open_pdf_externally": True})
driver1=webdriver.Chrome(chrome_options=chr_Options)
解决方案
下载目录通常在您通过选项设置“download.default_directory”创建浏览器实例时设置,如下所述:How to use chrome webdriver in selenium to download files in python? 或者正如你在片段中所拥有的那样。
如果您想在一个会话期间将文件存储到不同的目录,您有一些选择,但是我选择的一个,因为在同一任务中我还需要更改文件名,是将文件存储到本地 /tmp 目录,重命名并移动它到最后的地方。
import os
import shutil
CWD = os.getcwd()
TMP_DIR = CWD + "/tmpf" # directly downloaded files
if not os.path.isdir(TMP_DIR):
os.mkdir(TMP_DIR)
DWN_DIR = CWD + '/downloaded_files' # renamed files from TMP_DIR
if not os.path.isdir(DWN_DIR):
os.mkdir(DWN_DIR)
在首选项中:“download.default_directory”:TMP_DIR,然后
file_to_download.click()
old_name = os.listdir("./tmpf")[0]
old_file_name = TMP_DIR + "/" + old_name
new_file_name = DWN_DIR + '/' + "SPECIFIC_Prefix_" + old_name.lower().replace(" ","_")
shutil.move(old_file_name, new_file_name)
print("File downloaded and moved to: ", new_file_name)
推荐阅读
- vue.js - 如何在 Bootstrap-Vue b-table 中使用行跨度?
- entity-framework-core - Entity Framework Core 迁移如何检测数据库版本太新
- python - 如何使用 pika 1.2.0 发送 RabbitMQ 心跳帧?
- python - 'QuerySet' 对象没有属性 'product'
- dockerfile - 如何修改 dask 工作人员使用的 docker 映像中的库版本?
- c++ - 避免来自同一个项目的多个包含
- python - LSTM 模型需要很长时间
- android - 我正在使用 systrace 对其 GPU 的 android 应用程序进行性能调查。systrace 中的“GPU 完成”线程是什么意思
- dynamics-crm-2011 - 使用本地 Microsoft Dynamics CRM 进行客户端凭据身份验证的 OAuth 配置
- r - 根据某个变量将许多列转换为 NA