当前位置: 首页 > 知识库问答 >
问题:

使Selenium等待文件下载完成

阎祖鹤
2023-03-14

我设法用Selenium静默下载了文件。但是Firefox通过添加1、2、3自动重命名该文件。文件名,因为服务器发送的每个文件都具有相同的名称。但我想根据当前的日期和时间重命名文件。于是,试着:

>

  • 开始下载文件->DownloadLink.Click();

    而(不存在带有原始名称的文件或不存在 .part) · · { Thread.Sleep(2000);}

    将下载的文件重命名为所需的名称。

    但它会重命名一些文件。有些文件长度为0,最后一个文件甚至没有重命名。我想这是因为我的代码在下载后继续,而不在while循环中轮询。我该怎么办?提前道谢。

  • 共有2个答案

    戎亦
    2023-03-14

    double fileSize=file.length(while(!file.exists()fileSize==0){Thread.Sleep(2000);}

    龙兴贤
    2023-03-14

    我会让您的自动化将文件移动到一个不同的位置并重命名它。system.io.file.move(“oldfilename”,“newfilename”);(C#)

    可能会在文件名的末尾添加datetime。

    这样你就不会有重复的文件名和找不到正确的文件的问题了。

     类似资料:
    • 问题内容: 我想从表格中的页面中抓取一些数据。所以我只为表中的数据而烦恼。之前我使用过Mechanize,但有时发现某些数据丢失了,尤其是在表格的底部。谷歌搜索,我发现这可能是由于机械化无法处理Jquery / Ajax。 所以我今天改用selenium。我该如何等待一个只有一个表完全加载,然后使用Selenium和python从该表中提取所有链接?如果我等待整个页面加载,则需要一些时间。我想确保

    • 问题内容: 我正在通过chromewebdriver(windows)使用selenium和python来自动执行从不同页面下载大量文件的任务。我的代码可以运行,但是解决方案远非理想:下面的函数单击网站按钮,该按钮会启动Java脚本函数,该函数会生成PDF文件,然后下载该文件。 我必须使用静态等待才能等待下载完成(丑陋)。我无法检查文件系统以确认下载何时完成,因为我使用的是多线程(从不同页面下载很

    • 我试过下面的方法,但效果不理想。

    • 问题内容: 我正在使用Selenium 2 WebDriver来测试使用AJAX的UI。 有没有一种方法可以使驱动程序稍稍等待Ajax请求将完成。 基本上我有这个: 问题答案:

    • 我正在使用与Salim在这里发布的内容类似的实现使用Selenium测试AngularJS 然而,当运行时,检查将系统性地等待“webdriver等待”期。 据我所知,无论发生什么,布尔检查总是返回false。 有人有什么想法吗? 我试图缩短等待的超时值以及更改池速率,但所做的只是使用这些新值,而不是真正“返回true”检查。 预期:只要Angular没有任何挂起的http\U请求,等待就会结束

    • 问题内容: 我编写了一个脚本,该脚本从页面中获取数据,但是有时页面需要花费一些时间来加载,因此当将html拉到汤对象中时,有时它什么也不会拉,因为页面仍然需要完成。 我编写了以下代码以等待页面完成。 有用 但是调用函数时出现以下错误; 问题答案: 我认为您应该这样使用: 如手册所述。