首页 > 解决方案 > C# 如何获取下载文件名 - Selenium(chrome)

问题描述

我用selenium做asp.net爬虫遇到了一个问题。

我正在下载多个文件,需要实时获取已完成文件的名称。

我需要如何实现它。谢谢您的回答。

IWebElement tableElementaa = _driver.FindElement(By.Id($"cph_gvS02_btnDown_{i - 1}"));
tableElementaa.Click();

标签: c#seleniumweb-crawler

解决方案


知道 Selenium 将下载文件视为反模式。他们建议使用特定的软件包直接从服务器获取文件。但有时你真的需要那个下载......

启动浏览器时首先指定游览下载目录。在点击之前获取所有文件。单击“等待直到出现最后没有 .tmp 的新文件”。样品只需等待 5 秒。

options.addOption("download.default_directory", "c:\\Test\\")
var before = Directory.GetFiles("c:\\Test\\");
//do click
Thread.Sleep(5000); // add fancy while with timer here
var newFile = Directory.GetFiles("c:\\Test\\").FirstOrDefault(e=>!before.Contains(e));

推荐阅读