我的Winform应用程序中有webbrowser
控件。
以下区域属于代码分区样本。
区域1 加载的当前网址页面为“http://MyWebsite.com”。我正在使用代码点击网页中的链接(说“关于我们”)。点击此按钮将转到新的网址页面(“http://MyWebsite.com/About_Us”)。在导航活动中,我正在录制这个新网址。
区域2
现在我想获取这个新网址的所有元素,然后点击一个新链接。但不知道该怎么做。在区域2中,我还将新URL分配给webbrowser对象。但事实并没有反映出来。 webbrowser.url
仍包含上一个网址路径。
我有以下按钮点击代码:
private void Button1Click(object sender, EventArgs e)
{
// Region 1---------------------------------------------
HtmlElementCollection links = webBrowser1.Document.GetElementsByTagName("A");
foreach (HtmlElement link in links)
{
if (link.InnerText != null && link.InnerText.Equals("Click to view magic"))
{
link.InvokeMember("Click");
break;
}
}
// EndRegion---------------------------------------------
// Region 2---------------------------------------------
webBrowser1.Url = new Uri(_url.AbsoluteUri, UriKind.Absolute);
webBrowser1.Navigate(_url); //New Edit
links = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement link in links)
{
if ((link.GetAttribute("Name") == "BooHoo"))
{
link.InvokeMember("Click");
break;
}
}
// EndRegion---------------------------------------------
}
private void WebBrowser1Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
_url = e.Url;
}
任何人都可以帮助我这样做。问题可能不是很清楚。如果您需要任何进一步的细节,请告诉我。感谢。
答案 0 :(得分:0)
所以这有点棘手,否则我就不小心了。我在调试模式下观察属性值。后来我注意到,在Visual Studio中按F5
(继续调试)并运行所有方法后,webbrowser
显示更改的值。
希望它有所帮助。
答案 1 :(得分:0)
您需要订阅Navigated事件,因为WebBrowser异步工作。
private void webBrowser1_Navigated(object sender,WebBrowserNavigatedEventArgs e) { - 做点什么...... }