如何下载一个文件与WebClient,如果它是由javascript服务

本文关键字:如果 服务 javascript WebClient 文件 下载 何下载 一个 | 更新日期: 2023-09-27 18:03:02

我正在编写一个基于Selenium WebDriver的自动化UI测试解决方案。我需要一个独立于浏览器的方法来实现文件下载。

我的方法依赖于System.Net.WebClient类,如果有一个属性(例如hrefsrc)可以从中推断文件位置,则可以成功地从站点下载文件。

然而,当通常保存引用的元素没有指向文件的指针时,我遇到了问题。相反,该元素有一个绑定到Javascript单击事件的CSS类。当元素被点击时,Javascript会触发一个窗口。在动态创建的链接上打开操作

关于如何从我的c#代码中成功捕获文件引用的任何想法?

如何下载一个文件与WebClient,如果它是由javascript服务

如果我理解正确的话,您正在构建客户端应用程序,而服务器的行为超出了您的控制范围。您需要模拟真实浏览器的以下行为:

  1. 客户端导航到URL。
  2. 客户端点击一个链接(或其他元素),触发一个JavaScript函数。
  3. JavaScript函数将客户端重定向到正确的URL下载资源
  4. 客户端下载资源

你不能对WebClient类这样做,它不公开任何点击行为或任何执行JavaScript的方式。WebClient实例不是浏览器。它只是一个类,提供了一种向给定URL发送数据和从给定URL接收数据的方法。

这并不能直接回答你的问题,但是当使用自动化工具时,你应该坚持通过IE工具可以完成的事情,你应该使用浏览器来做你需要做的事情。如果出于某种原因,您确实需要下载该单击事件的结果,但无法通过selenium完成,那么您可能需要使用无头浏览器。这个问题讨论了一些你可以使用的选项。

这个问题讨论了更多的选项

相关文章: