我使用GeckoFX导航到某个网站,要求我登录 . 到目前为止,导航和登录看起来像这样:

Public Flag_Completed As Boolean = False

....

Navigate("http://www.website.com/loginpage/")
While Not Flag_Completed
   Application.DoEvents()
End While
Dim User As GeckoInputElement = GeckoWebBrowser1.Document.GetHtmlElementById("edit-name")
Dim Pass As GeckoInputElement = GeckoWebBrowser1.Document.GetHtmlElementById("edit-pass")
User.Value = "myUsername"
Pass.Value = "myPassword"
Dim Form = CType(GeckoWebBrowser1.Document.Forms(1), GeckoFormElement)
Form.submit()
Flag_Completed = false
While Not Flag_Completed
   Application.DoEvents()
End While

...

Public Sub Navigate(ByVal URL As String, Optional ByVal LimitTimeinMinutes As Integer = 1)
        Flag_Completed = False
        GeckoWebBrowser1.Width = 1920
        Application.DoEvents()
        Try
            GeckoWebBrowser1.Navigate(URL)
        Catch ex As Exception

        End Try

    End Sub

到目前为止,一切似乎都有效,但我找不到正确下载文件的方法 . 我尝试将WebClient与DownloadFile()方法结合使用,如下所示:

Dim myWebClient As New WebClient()
myWebClient.DownloadFile("http://www.website.com/path/file.pdf", "C:\Path\to\local\file.pdf")

问题是WebClient没有登录(与我的GeckoFX浏览器(GeckoWebBrowser1)相反 . )我最终得到的文件具有.pdf文件扩展名但在文本编辑器中打开文件清楚地表明该文件实际上是当您在未登录的情况下输入链接时将显示在屏幕上的HTML网页 . (有道理)

不幸的是,我已经搜索了一天以上,并且't find an answer to my particular problem. There doesn'似乎是GeckoFX库中的一种方法,可以采用DownloadFile()方法的位置 . 我在这里找到了以下问题:How to handle downloading in GeckoFX 29这似乎与我的问题相似 . 遗憾的是,该解决方案针对的是C#中的Windows.Forms应用程序,我似乎无法在我自己的VB.NET控制台应用程序中使用它 . 这是解决这个问题的正确方法吗?如果有,任何想法?如果不是,究竟怎么样?

UPDATE: 为了完整起见,我会提到我解决了我的特定问题(在登录后下载PDF)但我没有使用GeckoFX,而是使用WebClient和HttpRequests下载文件 . 我强烈推荐以下教程解释:http://odetocode.com/Articles/162.aspx