一个hacky方法是:
- 将事件处理程序附加到按钮的“onclick”事件。
- 然后,一旦触发事件,使用Microsoft Internet Controls (SHDocVw)类型库以获取在 IE 中打开的最后一个 URL。
- 最后,导航到 URL,一旦加载了文档,就从
webBrowser1.DocumentText
属性中获取文档的源。
在您的项目中,添加对Microsoft Internet 控件类型库的引用(您可以在COM选项卡中找到它)。在文件顶部添加:
using SHDocVw;
编码:
webBrowser1.Navigate(url);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
// assign the button to a variable
var button = webBrowser1.Document.GetElementById("downloadButton");
// attach an event handler for the 'onclick' event of the button
button.AttachEventHandler("onclick", (a, b) =>
{
// use the Microsoft Internet Controls COM library
var shellWindows = new SHDocVw.ShellWindows();
// get the location of the last window in the collection
var newLocation = shellWindows.Cast<SHDocVw.InternetExplorer>()
.Last().LocationURL;
// navigate to the newLocation
webBrowser1.Navigate(newLocation);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
// get the document's source
var source = webBrowser1.DocumentText;
});
button.InvokeMember("click");