如何在当前运行的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"就像这里描述的:如何在selenium中使用chromewebdriver在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)

在prefs中:"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)

最新更新