我正在尝试从FedEx的网站下载跟踪信息。首先,我必须传递登录凭据,然后导航到触发自动下载的网页。我的代码到目前为止工作得很好。然而;一旦下载被触发,就会出现一个弹出窗口,询问我是否要保存文件,然后当我单击“保存”时,我会询问我要将文件保存到的位置。我想禁用弹出窗口并让文件自动保存在我的下载文件夹中。有没有办法做到这一点?在此先感谢您的帮助! 到目前为止,这是我的代码。
Dim WebBrowser1 As New WebBrowser
Dim url As String = "https://www.fedex.com/insight/manifest/manifest.jsp?&__QS=252D0F3B4E380B211B122B1A09251510050E0F5C273A223E34360539237976645E45745E57776C&"
WebBrowser1.Navigate(url)
WebBrowser1.ScriptErrorsSuppressed = True
Threading.Thread.Sleep(2000)
Application.DoEvents()
Do Until WebBrowser1.IsBusy = False
Threading.Thread.Sleep(1000)
Application.DoEvents()
Loop
WebBrowser1.Document.GetElementById("username").SetAttribute("value", "MyUsername")
WebBrowser1.Document.GetElementById("password").SetAttribute("value", "MyP@ssw0rd")
WebBrowser1.Document.GetElementById("login").InvokeMember("click")
Threading.Thread.Sleep(1000)
Application.DoEvents()
Do Until WebBrowser1.IsBusy = False
Threading.Thread.Sleep(1000)
Application.DoEvents()
Loop
WebBrowser1.Navigate("https://www.fedex.com/insight/manifest/download_post.jsp?VIEW=|Outbound_View&INFOTYPE=STATUS")
Do Until WebBrowser1.IsBusy = False
Threading.Thread.Sleep(1000)
Application.DoEvents()
Loop
所以我尝试了这段代码,但所有这些仍然只是下载页面的源代码。
Using client As New WebClient()
client.Headers("User-Agent") = "Mozilla/4.0"
client.Credentials = New NetworkCredential("Username", "P@sword")
client.Credentials = CredentialCache.DefaultCredentials ' << if Windows Authentication
Dim content As String = client.DownloadString("https://www.fedex.com/insight/manifest/download.jsp?VIEW=/Outbound_View")
Console.WriteLine(content.Substring(0, 15))
End Using
我再次检查了网页的来源,试图找到不同的网址,但也找不到其他内容。我想知道使用WebBrowser.Navigate下载是否更容易,然后禁止弹出窗口。有没有压制或摆脱vb中的下载弹出窗口?我对WebClient没有太大的成功。感谢所有的帮助,因为我在vb.net上还是新手!