gpt4 book ai didi

python selenium,找出下载何时完成?

转载 作者:太空狗 更新时间:2023-10-29 17:25:47 24 4
gpt4 key购买 nike

我使用 selenium 启动下载。下载完成后,需要进行一些操作,请问有什么简单的方法可以知道下载完成了吗? (我使用的是 FireFox 驱动)

最佳答案

我最近遇到了这个问题。我一次下载多个文件,如果下载失败,我必须以一种超时的方式构建。

该代码每秒检查某个下载目录中的文件名,并在完成或完成时间超过 20 秒时退出。返回的下载时间用于检查下载是否成功或是否超时。

import time
import os

def download_wait(path_to_downloads):
seconds = 0
dl_wait = True
while dl_wait and seconds < 20:
time.sleep(1)
dl_wait = False
for fname in os.listdir(path_to_downloads):
if fname.endswith('.crdownload'):
dl_wait = True
seconds += 1
return seconds

我相信这只适用于以 .crdownload 扩展名结尾的 chrome 文件。在其他浏览器中可能有类似的检查方法。

编辑:我最近更改了使用此函数的方式,因为 .crdownload 没有作为扩展名出现。本质上,这也只是等待正确数量的文件。

def download_wait(directory, timeout, nfiles=None):
"""
Wait for downloads to finish with a specified timeout.

Args
----
directory : str
The path to the folder where the files will be downloaded.
timeout : int
How many seconds to wait until timing out.
nfiles : int, defaults to None
If provided, also wait for the expected number of files.

"""
seconds = 0
dl_wait = True
while dl_wait and seconds < timeout:
time.sleep(1)
dl_wait = False
files = os.listdir(directory)
if nfiles and len(files) != nfiles:
dl_wait = True

for fname in files:
if fname.endswith('.crdownload'):
dl_wait = True

seconds += 1
return seconds

关于python selenium,找出下载何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com