Skip to main content
 首页 » 编程设计

python之Webdriver 下载完成后立即打开文件

2025年05月04日27kevingrace

我正在编写一些测试,我正在使用带有 FirefoxProfile 的 Firefox webdriver 从外部 url 下载文件,但我需要下载完成后立即读取此类文件以检索一些特定数据。

我这样设置我的配置文件和驱动程序:

fp = webdriver.FirefoxProfile() 
fp.set_preference("browser.download.folderList", 2) 
fp.set_preference("browser.download.manager.showWhenStarting", False) 
fp.set_preference("browser.download.dir", '/some/path/') 
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream") 
 
ff = webdriver.Firefox(firefox_profile=fp) 

有什么方法可以知道文件何时完成下载,这样我就知道什么时候调用阅读器函数而不必轮询下载目录、等待 time.sleep 或使用任何 Firefox 添加-开?

感谢您的帮助:)

请您参考如下方法:

您可以尝试在文件下载时将文件连接到文件对象以像流缓冲区一样使用它,在下载时轮询它以获取您需要的数据,自己直接监控下载完成(通过等待文件具有预期的大小,或者如果在一定时间内没有添加新数据,则假设它是完整的)。

编辑:

您可以尝试查看引用资料文件夹中的下载跟踪数据库 here .看起来您可以等待文件的状态为 1。