【问题标题】:VB.Net: How to fill in a form in a website, then click at a button and download the file using webbrowser control?VB.Net:如何在网站中填写表格,然后单击按钮并使用网络浏览器控件下载文件?
【发布时间】:2010-03-15 00:08:04
【问题描述】:

我正在使用 WebBrowser-Control 来填写网络表单,然后单击一个按钮,这目前会导致标准的下载文件对话框(如果您使用 Internet Explorer 下载文件,则会得到这些),但是,我有捕获此文件并使用我定义的名称自动将其保存到特定文件夹。

我正在尝试在 vb.net 中编写一个小应用程序,该应用程序从我的 wordpress-blog 下载导出文件,我希望完全无需用户交互来完成此操作。

目前一切正常,除了下载文件。 我试图用事件 System.Windows.Controls.WebBrowser.Navigating(ByVal Object, ByVal System.Windows.Navigation.NavigatingCancelEventArgs) 来捕捉它,但我看不到从哪里下载文件:(

希望你们能帮帮我。

【问题讨论】:

    标签: vb.net wordpress webforms webbrowser-control download


    【解决方案1】:

    使用WATIN。非常非常类似于 IE 浏览器控件,但它具有各种酷炫的对话框弹出处理程序,包括安全警告和文件下载/保存选项。

    【讨论】:

      【解决方案2】:

      您可以使用 Fiddler 捕获用于获取文件的 HTTP 请求并记录响应。然后,您可以将响应正文保存到文件中。

      Fiddler 广泛支持自动化。

      【讨论】:

      • 我可以让 webbrowser-control 只下载页面而不运行任何脚本等,但我在网站源代码中找不到任何可以保存的相关内容 - 并且如果可能的话,我不想使用其他 3rd 方产品
      • Fiddler 是一个开发工具,你不会在运行时使用它。您可以使用它来捕获浏览器和 Web 服务器之间的 HTTP 对话,然后使用 WebClient 模拟该对话以发送 HTTP 请求
      • 谢谢!这让我更接近我的目标 - 但如果我使用 webclient 而不是 webbrowser,我仍然会遇到表单登录问题
      • 对不起,但不起作用:(它是在 webbrowser 控件内(我也可以使用高级 webbrowser-controls,但我尝试的所有内容都没有处理此类下载 - 为什么?)但另一种方法是在 Internet Explorer 中添加 text/xml 作为 mime 类型,这样它就会显示而不是下载它 - 你知道如何使用 vb.net 或 c# 更改 mime 类型吗?
      【解决方案3】:

      implement IServiceProvider 在您的网络浏览器站点上,并将服务查询回复至IDownloadManager

      【讨论】:

      • 感谢您的帮助!我尝试了这个 ExtendedWebBrowser 项目,但我真的不知道我与 IDownloadManager 有什么关系,或者我必须在 ExtendedWebBrowser 的代码中添加这个:(
      猜你喜欢
      • 2021-11-22
      • 1970-01-01
      • 2019-10-02
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多