1

我的 Winform 应用程序中有一个webbrowser控件。

以下区域属于代码示例的划分。

区域 1 当前加载的 url 页面是“ http://MyWebsite.com ”。我正在使用代码单击网页中的链接(例如“关于我们”)。此点击将带我到新的 url 页面(“ http://MyWebsite.com/About_Us ”)。在导航事件中,我正在记录这个新网址。

区域 2 现在我想获取这个新 url 的所有元素并单击一个新链接。但不知道该怎么做。在区域 2 中,我还将新 url 分配给 webbrowser 对象。但实例中没有任何反映。webbrowser.url仍然包含以前的 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;
    }

谁能帮我做到这一点。这个问题可能不是很清楚。如果您需要更多详细信息,请告诉我。谢谢。

4

2 回答 2

0

所以这有点棘手,否则我很粗心。我在调试模式下观察属性值。后来我注意到,在按下F5Visual Studio(继续调试)并运行所有方法后,webbrowser显示更改的值。

希望能帮助到你。

于 2013-03-07T13:18:26.740 回答
0

您需要订阅 Navigated 事件,因为 WebBrowser 异步工作。

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) { --Do Something Here.... }

于 2018-06-13T08:13:16.003 回答