我正在尝试使用Python中的Selenium WebDriver下载共享文件夹中的文件。我使用以下代码:
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options
from selenium import webdriver
pathtodownload = "\\\\shared folder"
driverpath = "edge driver path"
options = Options()
prefs = {"download.default_directory": pathtodownload}
options.add_experimental_option("prefs", prefs);
service = Service(driverpath)
driver = webdriver.Edge(service=service, options=options)
但是,该文件仅部分作为CRDOWNLOAD文件下载。尝试手动下载时,文件将完全下载到默认下载文件夹,甚至在我将其更改为共享文件夹后也会下载。是什么导致了这个问题?
1条答案
按热度按时间1bqhqjot1#
您面临的问题可能与Selenium WebDriver处理文件下载的方式有关。默认情况下,WebDriver会等待下载整个文件后再继续,这可能不适合大文件或慢速网络连接。
要解决此问题,您可以尝试以下解决方案:
为Edge浏览器配置文件设置下载目录:您可以使用所需的下载目录创建自定义浏览器配置文件,而不是使用实验性选项。这可以使用edge_profile选项来实现。下面是一个例子:
确保将“C:\path\to\profile”替换为Edge配置文件的实际路径。
处理不完整的下载:如果上述解决方案不起作用,您可以尝试等待CRDOWNLOAD文件完成下载。您可以使用循环来检查文件大小是否在一定时间内保持不变。文件完全下载后,您可以继续执行脚本。下面是一个例子:
在上面的代码中,将“filename.ext”替换为您正在下载的文件的实际名称。
通过使用第二种方法,您可以手动处理未完成的下载,方法是等待文件完全下载,然后再继续执行脚本。